ios自動化測試(xcode自帶的UI測試)

一.使用前景
一般app開發(fā)完成后叉趣,打出ipa包貌虾,供測試mm下載安裝測試。測試mm會打開app進(jìn)行各種按鍵切換手勢動作(其實主要就是UI交互操作)勺卢,很是繁瑣伙判,尤其是回歸測試,會做很多重復(fù)的工作黑忱。
為了減輕測試mm的壓力宴抚,蘋果在ios9后,引入和UI測試相關(guān)API甫煞。開發(fā)就可以比把較固定的和通用的測試用例做成UI測試用例菇曲,一鍵運行所有用例,極大的減輕了測試mm的工作壓力抚吠。
運行用例效果圖如下(紅×就是用例不通過的):


Paste_Image.png

二.給工程添加UI測試模塊
ios9后常潮,XCTEST框架增加了UI測試相關(guān)的API(UI測試) <語言是oc或swift語言>
1.新建的時候選擇如下模塊


Paste_Image.png

2.如果新建的時候完了,也可以如下方法添加(添加target)


Paste_Image.png

3.創(chuàng)建好后默認(rèn)代碼解釋
Paste_Image.png

4.命名規(guī)范 ui測試用例要以test開頭命名
-(void)testExample1
{
    XCUIApplication *app = [[XCUIApplication alloc] init];
    [app.buttons[@"自選"] tap];
    XCUIElement *textField = [app.textFields elementBoundByIndex:0];
    XCTAssert(textField.exists);
    [textField tap];
    [textField typeText:@"500"];
    [app.buttons[@"計算"] tap];
    //添加自己的測試代碼(斷言)
    XCUIElement *lbl = app.staticTexts[@"計算結(jié)果=45"];
    XCTAssert(lbl.exists);
}

三.具體編碼過程
一般先用腳本錄制工具(UI Recording)進(jìn)行簡單邏輯的代碼生成楷力,之后在對代碼進(jìn)行修改喊式,添加斷言或循環(huán)操作之類的
1.腳本錄制工具(UI Recording)


Paste_Image.png

錄制腳本源碼(默認(rèn)應(yīng)該會有錯誤)


Paste_Image.png

2.修改腳本


Paste_Image.png

四.代碼編寫和修改

  1. 頭文件相關(guān)類


    Paste_Image.png

    2.UI測試常用的API(理解子元素和后代元素的層次關(guān)系)

//所有后代元素
-(XCUIElementQuery*)descendantsMatchingType:(XCUIElementType)type;
//直接子元素
-(XCUIElementQuery*)childrenMatchingType:(XCUIElementType)type;
//模擬文本框輸入
-(void)typeText:(NSString*)text;
//模擬單機(jī)
-(void)tap;

3.常用場景
3.1判讀是否含有指靜態(tài)文本

XCUIApplication* app = [[XCUIApplicationalloc] init];
//獲得當(dāng)前界面中的表視圖
XCUIElement* tableView = [app.tableselementBoundByIndex:0];
XCUIElement* cell1 = [tableView.cells elementBoundByIndex:0];
//法1 推薦使用
XCTAssert(cell1.staticTexts[@"Welcome"].exists);
//法2 
XCTAssert([[cell1 descendantsMatchingType:XCUIElementTypeStaticText] objectForKeyedSubscript:@"Welcome"].exists);

3.2點擊導(dǎo)航欄上的回退按鈕

XCUIApplication* app = [[XCUIApplication alloc] init];
//點擊添加“增加”按鈕,跳轉(zhuǎn)到增加界面
[app.navigationBars[@"導(dǎo)航欄"].buttons[@"back"] tap];

4.使用的時候注意點
4.1.如果是xib可以用蘋果的輔助功能


Paste_Image.png
XCUIElement *textField = app.textFields[@"revenueTxt"];

因為我用的是代碼生成的萧朝,用的是如下方法替代

XCUIElement *textField = [app.textFields elementBoundByIndex:0];

五.具體使用例子
1.數(shù)據(jù)庫(查增刪)UI測試用例
源代碼下載:https://pan.baidu.com/s/1c1EtCcg
2.簡單效果圖

Paste_Image.png

3.注意UI用例測試如果不是很獨立岔留,相互之間有聯(lián)系,出現(xiàn)紅x不一定代表代碼邏輯有問題检柬,有時候可能是很多用例有先后順序献联,需要具體評估(造點數(shù)據(jù),在重新運行下用例就可以)

如果您發(fā)現(xiàn)本文對你有所幫助厕吉,如果您認(rèn)為其他人也可能受益酱固,請把它分享出去。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末头朱,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子龄减,更是在濱河造成了極大的恐慌项钮,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件希停,死亡現(xiàn)場離奇詭異烁巫,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)宠能,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進(jìn)店門亚隙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人违崇,你說我怎么就攤上這事阿弃≌锱” “怎么了?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵渣淳,是天一觀的道長脾还。 經(jīng)常有香客問我,道長入愧,這世上最難降的妖魔是什么鄙漏? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮棺蛛,結(jié)果婚禮上怔蚌,老公的妹妹穿的比我還像新娘。我一直安慰自己旁赊,他們只是感情好媚创,可當(dāng)我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著彤恶,像睡著了一般钞钙。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上声离,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天芒炼,我揣著相機(jī)與錄音,去河邊找鬼术徊。 笑死本刽,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的赠涮。 我是一名探鬼主播子寓,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼笋除!你這毒婦竟也來了斜友?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤垃它,失蹤者是張志新(化名)和其女友劉穎鲜屏,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體国拇,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡洛史,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了酱吝。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片也殖。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖务热,靈堂內(nèi)的尸體忽然破棺而出忆嗜,到底是詐尸還是另有隱情己儒,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布霎褐,位于F島的核電站址愿,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏冻璃。R本人自食惡果不足惜响谓,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望省艳。 院中可真熱鬧娘纷,春花似錦、人聲如沸跋炕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽辐烂。三九已至遏插,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間纠修,已是汗流浹背胳嘲。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留扣草,地道東北人了牛。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像辰妙,于是被迫代替她去往敵國和親鹰祸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容

  • 大多數(shù)的iOS App (沒有持續(xù)集成)迭代流程是這樣的: 也就是說密浑,測試是發(fā)布之前的最后一道關(guān)卡蛙婴。如果bug不能...
    伯牙呀閱讀 4,897評論 1 22
  • 啟示 iOS的自動化測試相對安卓的成熟度底很多.而自動化測試的目的是減輕人工測試的壓力.剛剛看一文章提到“沒有兩...
    Y_Swordsman閱讀 10,983評論 10 11
  • 0.小目標(biāo) 關(guān)于UI自動化的定義,我想要的是自動地按照流程去點擊頁面肴掷、輸入數(shù)據(jù)敬锐,不需要人去參與,節(jié)省人工時間呆瞻。比如...
    孢子菌閱讀 15,600評論 10 47
  • 二寶這幾天又拉肚子了,忙的焦頭爛額径玖!每次孩子生病都是對媽媽的考驗痴脾,無論是體力上還是精神上,都是一種挑戰(zhàn)梳星! 這次腹瀉...
    良仁的向日葵閱讀 336評論 2 1
  • 我的惡毒 都寫在書里 藏在夢里 醒來 我還是我
    滿島遙閱讀 251評論 0 1