基于Xcode的iOS原生UI測試框架 UITests使用 簡單case

前言

隨著APP功能的不斷增加,僅僅靠黑盒測試人工來覆蓋測試無疑有很大的局限性,效果也不如人意,尤其是新功能增加后可能要對舊功能做回歸測試,產(chǎn)生了大量的重復(fù)工作,而這些重復(fù)工作有一些是可以通過自動化測試進行完成的,UITests的出現(xiàn)就是為了解決這個問題.

UItests介紹

UITests是什么?

UItests是由蘋果公司開發(fā)的一個自動測試UI交互的自動化測試框架

UItests能做什么?

UItests可以幫助我們解決一些測試上的重復(fù)工作,節(jié)省人工成本,提高測試效率等.

UITests使用

新創(chuàng)建的項目可以通過勾選include UI Tests來添加

現(xiàn)有項目可以通過以下步驟來添加.



成功添加UITests組件后,在項目文件導航里可以看到對應(yīng)目錄.


UITestDemoUITests.m就是用來編寫測試案例的文件.

注:測試方法都是以test開頭的

測試代碼可以通過錄制和直接編寫兩種方法來生成,建議先通過自動生成 然后修改自動生成的代碼.

聲明一個新的測試方法 點擊小圓點 自動打開模擬器運行項目 對項目的操作會被用代碼的形式記錄下來



自動記錄的代碼也十分好理解,點擊了login按鈕 再點擊了id為Detail的導航欄上的Mune按鈕
點擊左上角的棱形標志則代表執(zhí)行這個測試方法,自動打開模擬器執(zhí)行.
測試方法執(zhí)行成功標志內(nèi)出現(xiàn)一個綠勾,失敗則是紅叉.
測試進行中會在控制臺打印參數(shù),包括當前操作 耗時等,測試完成則會打印測試log保存地址.

簡單測試案例

- (void)testLogi{
    XCUIElement *account = [[XCUIApplication alloc] init].textFields[@"account"];
    XCUIElement *pwd = [[XCUIApplication alloc] init].textFields[@"password"];
    XCUIApplication *app = [[XCUIApplication alloc] init];
    //判斷賬號密碼是否都是偶數(shù) 是則跳轉(zhuǎn) 不是則直接下一次測試
    //跳轉(zhuǎn)后等待3s 返回登錄界面

    int success = 0;
    int failed = 0;
    
    for (int i = 0; i<10; i++) {
        int acc = arc4random() % 1000;
        int pw = arc4random() % 1000;
        [account tap];
        [account typeText:[NSString stringWithFormat:@"%d",acc]];
        [pwd tap];
        [pwd typeText:[NSString stringWithFormat:@"%d",pw]];
        
        //點擊登錄
        [app.buttons[@"login"] tap];
        //模擬正常登錄網(wǎng)絡(luò)訪問等待3s
        [app.windows.navigationBars.element pressForDuration:3];
        //判斷是否跳轉(zhuǎn)到登錄之后的界面 如果是 則登錄成功
        if ([app.navigationBars.element.identifier isEqualToString:@"Detail"]) {
            [app.navigationBars[@"Detail"].buttons[@"Mune"] tap];
            NSLog(@"登錄成功");
            success += 1;
        }else{
            NSLog(@"登錄失敗");
            failed += 1;
        }
    }
    NSLog(@"10次測試,成功登錄%d次,失敗%d次",success,failed);
}

測試結(jié)果:


斷言

注:斷言結(jié)果會記錄在測試的log文件中,斷言失敗則該測試方法不通過.

 //斷言,最基本的測試珠闰,如果expression為true則通過逾苫,否則打印后面格式化字符串
  XCTAssert(expression, format...)

  //Bool測試:  
  XCTAssertTrue(expression, format...)
  XCTAssertFalse(expression, format...)

  //相等測試
  XCTAssertEqual(expression1, expression2, format...)
  XCTAssertNotEqual(expression1, expression2, format...)

  //double float 對比數(shù)據(jù)測試使用
  XCTAssertEqualWithAccuracy(expression1, expression2, accuracy, format...)
  XCTAssertNotEqualWithAccuracy(expression1, expression2, accuracy, format...)

  //Nil測試牡辽,XCTAssert[Not]Nil斷言判斷給定的表達式值是否為nil
  XCTAssertNil(expression, format...)
  XCTAssertNotNil(expression, format...)

  //失敗斷言     
  XCTFail(format...)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市度硝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件碎捺,死亡現(xiàn)場離奇詭異路鹰,居然都是意外死亡贷洲,警方通過查閱死者的電腦和手機收厨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來优构,“玉大人诵叁,你說我怎么就攤上這事∏胀郑” “怎么了拧额?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長彪腔。 經(jīng)常有香客問我侥锦,道長,這世上最難降的妖魔是什么德挣? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任恭垦,我火速辦了婚禮,結(jié)果婚禮上格嗅,老公的妹妹穿的比我還像新娘番挺。我一直安慰自己,他們只是感情好屯掖,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布玄柏。 她就那樣靜靜地躺著,像睡著了一般贴铜。 火紅的嫁衣襯著肌膚如雪粪摘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天绍坝,我揣著相機與錄音赶熟,去河邊找鬼。 笑死陷嘴,一個胖子當著我的面吹牛映砖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播灾挨,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼邑退,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了劳澄?” 一聲冷哼從身側(cè)響起地技,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎秒拔,沒想到半個月后莫矗,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年作谚,在試婚紗的時候發(fā)現(xiàn)自己被綠了三娩。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡妹懒,死狀恐怖雀监,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情眨唬,我是刑警寧澤会前,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站匾竿,受9級特大地震影響瓦宜,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜岭妖,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一临庇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧区转,春花似錦苔巨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蜻韭,卻和暖如春悼尾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背肖方。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工闺魏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人俯画。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓析桥,卻偏偏與公主長得像,于是被迫代替她去往敵國和親艰垂。 傳聞我的和親對象是個殘疾皇子泡仗,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354

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

  • 轉(zhuǎn):http://www.reibang.com/p/d5fca0185e83 Xcode測試 前言 總算在今天把...
    測試小螞蟻閱讀 2,895評論 0 20
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)猜憎,斷路器娩怎,智...
    卡卡羅2017閱讀 134,656評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,111評論 25 707
  • Xcode測試 前言 總算在今天把單元測試的官方文檔翻譯寫成了一片博客。首先感謝黨胰柑,感謝人民截亦,感謝我的父母爬泥。也必須...
    許漠顏閱讀 3,354評論 10 34
  • 六月的天空 一片純凈和蔚藍 總有潔白的云朵輕盈地流連 流動的風兒充滿了清香 醉了呼吸穿過我的發(fā)間 嬌艷的花朵開滿了...
    伊清歡閱讀 335評論 1 5