精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

IOS 4中實現UI自動測試教程

移動開發 iOS
本文介紹的IOS 4中實現UI自動測試教程,主要介紹了IOS中UI的實現,我們來看內容。

IOS 4中實現UI自動測試教程是本文要介紹的內容,這篇文章的對象是 iOS 4 的初學者,我希望一個典型的iPhone 開發者能夠通過這篇文章掌握自動設置UI測試的方法。

UI 自動測試iOS 4中重要的附加功能,它由名為“Automation”的新的工具對象支持,非常適合Producitivity風格應用的UI測試。

Automation工具從腳本工作(用JavaScript語言編寫),它在應用上模仿/擊發被請求的事件。測試腳本必須是可靠的可執行JavaScript文件,而且該文件可獲取主機的工具。

什么是測試腳本?

測試腳本是有順序的命令集合,每一個命令獲取一個應用中的用戶接口組件,然后在上面執行一個用戶行為,或者使用與之相關的信息。

描述

我使用的應用例子有一個名為“登陸”的屏幕,包含兩個文本域名:分別是“用戶名”和“密碼”,以及一個“登陸”按鈕。

寫測試腳本之前,在“Interface Builder”中標記所有的UI控制,在視圖中將可存取性標簽設置成一個唯一值(必須)。

在調試模式中編譯你的應用

測試腳本:

正如我上面提到的,測試腳本基本上是有順序的命令集合。換言之,它將文本測試的例子轉換成可以被“Automation”工具自動執行的JavaScript

下面是測試腳本的例子

  1.  // Get the handle of applications main window  
  2. var window = UIATarget.localTarget().frontMostApp().mainWindow();   
  3.    
  4. // Get the handle of view  
  5. var view = window.elements()[0];   
  6.    
  7. var textfields = window.textFields();  
  8. var passwordfields = window.secureTextFields();  
  9. var buttons = window.buttons();  
  10. var textviews = window.textViews();  
  11. var statictexts = window.staticTexts();  
  12. var target = UIATarget.localTarget();   
  13.    
  14. // Check number of Text field(s)  
  15. if(textfields.length!=1)  
  16. {  
  17.    UIALogger.logFail("FAIL: Inavlid number of Text field(s)");  
  18. }  
  19. else  
  20. {  
  21.    UIALogger.logPass("PASS: Correct number of Text field(s)");  
  22. }  
  23. // Check number of Secure field(s)  
  24. if(passwordfields.length!=1)  
  25. {  
  26.    UIALogger.logFail("FAIL: Inavlid number of Secure field(s)");  
  27. }  
  28. else  
  29. {  
  30.    UIALogger.logPass("PASS: Correct number of Secure field(s)");  
  31. }   
  32.    
  33. // Check number of static field(s)  
  34. if(statictexts.length!=2)  
  35. {  
  36.    UIALogger.logFail("FAIL: Inavlid number of static field(s)");  
  37. }  
  38. else  
  39. {  
  40.    UIALogger.logPass("PASS: Correct number of static field(s)");  
  41. }   
  42. // Check number of buttons(s)  
  43. if(buttons.length!=1)  
  44. {  
  45.    UIALogger.logFail("FAIL: Inavlid number of button(s)");  
  46. }  
  47. else  
  48. {  
  49.    UIALogger.logPass("PASS: Correct number of button(s)");  
  50. }   
  51. //TESTCASE_001 : Test Log on Screen  
  52. //Check existence of desired TextField On UIScreen  
  53. if(textfields["username"]==null || textfields["username"].toString() == "[object UIAElementNil]")  
  54. {  
  55.    UIALogger.logFail("FAIL:Desired textfield not found.");  
  56. }  
  57. else  
  58. {  
  59.    UIALogger.logPass("PASS: Desired UITextField is available");  
  60. }   
  61.    
  62. //TESTCASE_1.2 :Check existence desired of PasswordField On UIScreen  
  63. if(passwordfields[0]==null || passwordfields[0].toString() == "[object UIAElementNil]")  
  64. {  
  65.    UIALogger.logFail("FAIL:Desired UISecureField not found.");  
  66. }  
  67. else  
  68. {  
  69.    UIALogger.logPass("PASS: Desired UISecureField is available");  
  70. }   
  71.    
  72. //TESTCASE_1.3 :Check For Existence of Buttons On UIScreen  
  73. if(buttons["logon"]==null || buttons["logon"].toString() == "[object UIAElementNil]")  
  74. {  
  75.    UIALogger.logFail("FAIL:Desired UIButton not found.");  
  76. }  
  77. else  
  78. {  
  79.    UIALogger.logPass("PASS: Desired UIButton is available");  
  80. }   
  81. //TESTCASE_001 : Missing User Name  
  82. ///////////////////////////////////////   
  83. textfields["username"].setValue("");  
  84. passwordfields[0].setValue("password");  
  85. buttons["logon"].tap();   
  86. //target.delay(2);   
  87. var errorVal=textviews["error"].value();  
  88. if(errorVal!="Invalid User Name or Password")  
  89. {  
  90.    UIALogger.logFail("Did Not Get Missing UserName Error : "+errorVal);  
  91. }  
  92. else  
  93. {  
  94.    UIALogger.logPass("Missing User Name");  
  95. }   
  96. //TESTCASE_002 : Missing Password  
  97. ////////////////////////////////////////////////   
  98. textfields["username"].setValue("username");  
  99. passwordfields[0].setValue("");  
  100. buttons["logon"].tap();  
  101. target.delay(2);   
  102.    
  103. var errorVal=textviews["error"].value();  
  104. if(errorVal!="Invalid User Name or Password")  
  105. {  
  106.    UIALogger.logFail("Did Not Get Missing Password Error : "+errorVal);  
  107. }  
  108. else  
  109. {  
  110.    UIALogger.logPass(" Missing Password");  
  111. }   
  112. //TESTCASE_003 : Successful Log On  
  113. textfields["username"].setValue("username");  
  114. passwordfields[0].setValue("password");  
  115. buttons["logon"].tap();  
  116. target.delay(2);  

應用中的所有UI組件通過有次序的對象層級結構傳達給腳本,該層次結構通過UIAElements類定義,包括UIATarget、UIALogger等子類。

請參照蘋果開發者網站的UI Automation Reference Collection獲取更多信息。

完成腳本之后按下列步驟執行。

第一步

打開Instruments(你可以在Spotlight中找到它),在樣本選擇窗口中選擇“Automation”

第二步

Trace窗口會打開,在“Choose Target”下拉窗口的幫助下選擇應用的調試版本。

第三步

使用“Script”下拉窗口選擇測試腳本文件,然后點擊“Run and Record”按鈕。

之后會自動運行“iPhone Simulator”,并開始執行測試腳本(可能花費4-5秒時間)。

可重用的測試腳本

API提供一個#import指令,你可以用它編寫更小的、可重用的、分離的測試腳本。

例如:如果你準備在文件 TestUtilities.js中定義常用函數,你可以在腳本中加入命令行 #import”<path-to-library-folder>/TestUtilities.js”,從而使你的測試腳本能夠使用這些函數。

測試樣本代碼的硬件要求

帶有 Snow Leopard 10.6(或者更高版本)和iOS SDK 4.0 的Mac Mini(Intel處理器版本)

(1)解壓附件“LoginWindow_src.zip”,在調試模式下編譯它,并在模擬器Simulator上進行測試。

(2)“用戶名/密碼”是可靠證明;在相應的“User ID”和“Password”字段中填寫值。

你遇到“Unexpected error…”了?
“Unexpected error in -[UIATarget_0x5a20d20 frontMostApp], /SourceCache/UIAutomation_Sim/UIAutomation-37/Framework/UIATargetElements.m line 437″

如果你遇到了這個錯誤,復制一個 com.apple.Accessibility.plist 到4.0.1就可以解決這個問題。

復制com.apple.Accessibility.plist 到~/Library/Application Support/iPhone Simulator/4.0.1/Library/Preferences

確保這個文件中僅有兩個分別名為“AccessibilityEnabled”和“ApplicationAccessibilityEnabled”的鍵值,并且都經過效驗。

小結:IOS 4中實現UI自動測試教程的內容介紹完了,希望本文對你有所幫助!

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-08-03 11:17:50

iOS程序 測試

2009-08-27 14:09:09

布線測試跳線測試串擾測試

2023-07-17 13:57:05

2023-03-17 16:32:51

測試軟件開發

2009-07-06 10:22:26

Web網站壓力測試

2023-06-05 07:49:13

?左移測試敏捷

2019-02-15 15:07:39

AndroidiOS移動系統

2011-08-30 11:09:26

MySQL ProxyLua

2019-11-26 17:44:16

AI 數據人工智能

2023-03-30 16:50:18

2023-06-27 17:50:22

2010-01-28 09:07:50

Visual Stud

2014-04-02 10:29:12

iOS 7模糊效果

2017-03-28 12:25:36

2021-06-26 07:40:21

前端自動化測試Jest

2020-08-03 15:40:57

Web自動化工具測試

2009-12-23 16:33:34

WPF UI自動化測試

2016-12-08 08:25:39

QA自動測試Angular 2

2023-03-10 15:11:24

2021-10-18 12:01:17

iOS自動化測試Trip
點贊
收藏

51CTO技術棧公眾號

亚洲中文字幕无码av永久| 日韩视频一区二区三区| 欧美三日本三级少妇三99| 午夜精品久久久久久久蜜桃| 欧美aaaa视频| 日韩欧美色电影| 日韩久久一级片| jizzjizz在线观看| 国产成人av电影在线播放| 91地址最新发布| 永久免费看片直接| 日韩欧美美女在线观看| 91美女精品网站| 密臀av在线| 久久亚洲精品国产精品紫薇| 国产精品一区av| 久久久精品国产sm调教网站| 精品成人影院| 亚洲成人精品视频在线观看| 国产一区二区在线免费播放| √最新版天堂资源网在线| 欧美专区中文字幕| 成人影片在线播放| 草莓视频18免费观看| 一本精品一区二区三区| 亚洲欧美激情一区| 亚洲少妇一区二区| 国产日韩久久久| 在线免费观看日本欧美爱情大片| 日韩理论片久久| 国产老头和老头xxxx×| 本网站久久精品| 精品久久久久久中文字幕| 在线观看污视频| av大全在线免费看| 国产午夜一区二区三区| 91久久久久久久久久久| 亚洲婷婷综合网| 在线欧美视频| 久久夜色精品亚洲噜噜国产mv| 少妇精品一区二区| 国产另类在线| 在线成人小视频| 性chinese极品按摩| 三级成人黄色影院| 欧美性猛交xxxx免费看久久久| 日韩 欧美 视频| 国产美女情趣调教h一区二区| 亚洲日本va在线观看| 亚洲精品无人区| av网页在线| 国产精品色眯眯| 午夜精品一区二区三区四区| 国产精品麻豆一区二区三区| 久久久国产综合精品女国产盗摄| 秋霞毛片久久久久久久久| 欧美色图另类| 久久品道一品道久久精品| 久久综合九九| 黄色网址在线播放| 欧美韩国一区二区| 日韩精品久久久| 97电影在线| 综合久久久久久| 久久久99精品视频| 大桥未久在线播放| 日韩欧美国产视频| 天堂av在线网站| 日韩成人综合网| 日韩欧美中文字幕一区| 欧美黄页免费| 欧美亚洲日本一区| 亚洲综合色在线观看| 日本免费成人| 日韩一区二区三区av| 亚洲av无码成人精品区| 99这里只有精品视频| 日韩av在线网页| 久久精品国产99国产| 欧美成人精品在线| 精品无码久久久久| 国产日本精品| 国产精品黄视频| 91九色蝌蚪91por成人| 国产美女娇喘av呻吟久久| 成人av播放| 亚洲日本在线播放| 国产欧美日韩综合| 穿情趣内衣被c到高潮视频| 在线免费观看污| 狠狠做深爱婷婷久久综合一区 | 不卡av免费在线| 岛国精品在线| 精品sm在线观看| 久久亚洲无码视频| 欧美日韩 国产精品| 国产91对白在线播放| 亚洲熟妇无码久久精品| 成人黄色777网| 一区二区三区欧美成人| caoporn视频在线| 欧美情侣在线播放| av网站免费在线播放| 999久久久91| 乱人伦精品视频在线观看| 久久免费国产视频| 最近中文字幕av| www.日韩在线| 欧美 另类 交| 欧美色网一区| 精品国产污污免费网站入口| 丁香激情五月少妇| 亚洲九九精品| 精品久久久久久久无码| 亚洲免费成人网| 国产香蕉久久精品综合网| 欧美日韩激情四射| 国产精品66| 日韩精品在线观看视频| 91麻豆免费视频网站| 亚洲三级黄色片| 国产精品美女一区二区三区| 成人毛片一区二区| 国产精品18| 在线色欧美三级视频| 亚洲在线色站| 污污在线观看| 欧美日韩国产片| 国产人妻一区二区| 亚洲毛片av| 国产高清在线精品一区二区三区| 国产精品久久久久久久久久久久久久久| 亚洲三级视频在线观看| 国产精品白丝在线| www.日日操| 黄色的视频在线免费观看| 一区二区三区中文字幕| 亚洲国产日韩欧美在线观看| 一本久久青青| 少妇黄色一级片| 91欧美极品| 欧美超级乱淫片喷水| 五月天中文字幕| xfplay精品久久| 国产中文字幕二区| 久久久久97| 亚洲精品久久久久| 自拍偷拍第9页| 日韩av中文字幕一区二区三区| 国模一区二区三区私拍视频| 黑人玩欧美人三根一起进| 日韩区在线观看| 日本中文字幕免费在线观看| 精品亚洲成a人在线观看| 日本道色综合久久| 亚洲免费观看在线| 好吊一区二区三区| 国产在线资源一区| 樱花草涩涩www在线播放| 日韩激情在线视频| 亚洲91av视频| 亚洲经典一区二区三区| 一二三四社区欧美黄| 亚洲欧美高清在线| 国产深夜精品| 欧美色欧美亚洲另类七区| 91精品国产66| 久久久国产成人精品| japanese国产| 午夜视频在线观看一区| 51调教丨国产调教视频| 日韩精品一二三| 中文字幕乱码一区二区三区| 亚洲欧美专区| 久久久久国产精品一区| 视频一区二区在线播放| 在线免费观看日本一区| 可以免费看av的网址| 国产福利电影一区二区三区| 高清在线观看免费| 国内黄色精品| 97影院在线午夜| 中文字幕乱码中文乱码51精品| 国产一级揄自揄精品视频| 国产三级伦理片| 天天综合天天做天天综合| 99精品欧美一区二区| 国产精品综合一区二区三区| 国产手机免费视频| 欧美精品一区二区久久| 99久久伊人精品影院| 日本成人三级电影| 萌白酱国产一区二区| 日韩精品123| 9191精品国产综合久久久久久| 日本三级黄色大片| 国产精品视频第一区| 挪威xxxx性hd极品| 蜜桃久久久久久| 亚洲 欧美 日韩 国产综合 在线| 久久精品播放| 欧美12av| 网站一区二区| 国产日韩欧美91| 美女100%一区| 国模精品视频一区二区| 日本精品在线| 亚洲欧美综合图区| 丰满人妻一区二区三区免费视频| 欧美少妇bbb| 二区视频在线观看| 一区二区欧美视频| 性色国产成人久久久精品| 久久久亚洲综合| 折磨小男生性器羞耻的故事| 久久精品二区亚洲w码| av观看免费在线| 亚洲视频狠狠| 国产一二三四五| 99久久久久| 亚洲 日韩 国产第一区| 亚欧日韩另类中文欧美| 国产精品久久久对白| vam成人资源在线观看| 国产精品扒开腿做爽爽爽的视频| 888av在线视频| 久久国产精品久久国产精品| 日本电影在线观看网站| 一区二区av在线| 精品视频一二三| 久久精品女同亚洲女同13| 国产精品国产一区| 欧美日韩精品免费观看| 国产精品巨作av| 国产 高清 精品 在线 a| 粉嫩av国产一区二区三区| 国产精品免费一区| 你懂得影院夜精品a| 欧美一区二区三区艳史| 蜜桃麻豆av在线| 国产成人精品一区二三区四区五区| 丁香六月综合激情| 色呦色呦色精品| 久久精品国产99国产精品| 亚洲精品自拍网| 另类中文字幕网| 国产美女18xxxx免费视频| 免费观看在线色综合| 一区二区在线播放视频| 日韩av一区二区三区| 国产精品拍拍拍| 在线天堂一区av电影| 日韩五码电影| 国产精品羞羞答答| 久久er热在这里只有精品66| 国产精品丝袜白浆摸在线| 影视一区二区三区| 国产精品视频免费在线| 国产精品伊人| 91手机视频在线观看| 日韩中文字幕无砖| 国产福利久久精品| 99久久伊人| 日韩一级免费观看| 国产成人精品a视频| 日韩一区二区中文字幕| 亚洲a视频在线观看| 亚洲第一精品久久忘忧草社区| 嫩草影院一区二区| 亚洲美女在线观看| 深夜福利网站在线观看| 国产成人日日夜夜| 中文字幕免费高清视频| 久久这里都是精品| 少妇太紧太爽又黄又硬又爽小说 | 中文字幕一区二区三区有限公司 | 欧美精品一卡两卡| 国产精品毛片一区二区在线看舒淇| 欧美放荡的少妇| 丰满人妻妇伦又伦精品国产| 亚洲欧美精品suv| 久久国产精品一区| 久久久久久久久久久av| 欧美成人精品三级网站| 成人中心免费视频| 欧美调教在线| 日韩视频在线免费播放| 亚洲三级视频| 丁香婷婷激情网| 国产河南妇女毛片精品久久久 | 99久久国产免费| 亚洲精品美女久久久久| 日本免费在线视频| 欧美一区在线直播| 成人97精品毛片免费看| 久久av免费一区| 图片小说视频色综合| 欧美日韩一道本| 久久www免费人成看片高清| 人妻换人妻a片爽麻豆| 中国色在线观看另类| 日本在线视频免费观看| 欧美人与禽zozo性伦| 三级在线播放| 欧美激情免费观看| 国产成人午夜性a一级毛片| 国产欧美日韩伦理| 天天插综合网| 已婚少妇美妙人妻系列| 成人av影院在线| 看免费黄色录像| 在线观看日产精品| 天堂中文在线资源| 欧美成人午夜激情在线| 亚洲精品一区三区三区在线观看| 国产伦精品一区二区三区免 | 精品国产美女在线| 裤袜国产欧美精品一区| 国产精品免费一区二区三区四区 | 乱精品一区字幕二区| 日韩中文字幕网站| 电影久久久久久| 免费成人看片网址| 在线视频精品| 中文字幕乱视频| 亚洲精品第1页| 一级片在线免费观看视频| 国产午夜精品视频| 欧美一区国产| 欧美日韩在线观看一区| 午夜亚洲视频| 色呦呦一区二区| 黄色一区二区在线观看| 亚洲精品视频91| 欧美激情精品久久久久久黑人| av在线成人| 日韩不卡一二区| 黑人巨大精品欧美一区| 99热6这里只有精品| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 萌白酱视频在线| 欧美日韩一区二区三区视频| 国产系列在线观看| 国产精品扒开腿做| 中文字幕+乱码+中文字幕一区| 国产麻豆天美果冻无码视频| 亚洲一区在线电影| 国产黄色片免费| 欧美床上激情在线观看| 在线高清欧美| 日本一区二区三区四区五区六区| 欧美日韩在线二区| 欧美在线视频二区| 国产精品毛片| 欧美图片一区二区| 一本大道久久a久久综合| 深夜福利在线看| 欧美在线一区二区三区四| 女人丝袜激情亚洲| www.日本xxxx| 中文字幕一区二区三区色视频| 亚洲无码精品在线播放| 日韩视频免费在线观看| 国产精品成人**免费视频| 91大学生片黄在线观看| 成人网男人的天堂| 国偷自拍第113页| 亚洲欧洲午夜一线一品| 成人在线视频免费| 国风产精品一区二区| 成人动漫一区二区三区| 三级视频在线观看| 色香阁99久久精品久久久| 久久久91麻豆精品国产一区| www.日本三级| 久久亚洲精品小早川怜子| 这里只有精品国产| 久久在线观看视频| 欧美sss在线视频| 色综合手机在线| 亚洲免费av在线| 天堂中文网在线| 国产色婷婷国产综合在线理论片a| 伊人久久大香线| aaaaaav| 欧美日韩一本到| av岛国在线| 一区二区三区av| 92国产精品观看| 国产精品久久久久久69| 97超级碰碰人国产在线观看| 日韩在线综合| 国产精品第七页| 欧美一区二区黄| 都市激情综合| 男人添女人下部视频免费| 国产欧美日韩卡一| 亚洲高清视频在线播放| 国产精品高潮呻吟久久av野狼| 国产精品sm|