標籤:手機用戶端 電子書 輸入文字 視頻分享 target
QQ群288567073,無商業廣告,每日乾貨電子書+視頻分享
荔枝FM手機用戶端搜尋“挨踢脫口秀”即可訂閱我們
視頻匯總首頁:http://edu.51cto.com/lecturer/index/user_id-4626073.html
什麼是UI Tests呢?
UI Tests是蘋果提供給我們進行UI測試的一套架構。
UI Tests有什麼用?
它可以通過編寫代碼、或者是記錄使用者操作過程並將其代碼化,來實現自動點擊某個按鈕、視圖,或者自動輸入文字等功能。
UI Tests的意義
在實際的項目迭代過程中,隨著項目越做越大,功能越來越多,僅僅靠人工操作的方式來覆蓋所有測試案例是非常困難的,尤其是加入新功能以後,舊的功能也要重新測試一遍,這導致了測試需要花非常多的時間來進行迴歸測試,這裡產生了大量重複的工作,而這些重複的工作有些是可以自動完成的,這時候UI Tests就可以協助解決這個問題了。
使用方法
第一步:添加UI Tests。
如果是新項目,則建立工程的時候可以直接勾選Include UI Tests選項,如果是已有的項目,可以通過添加target的方式添加一個UI Tests的方式,如:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/75/09/wKioL1YxgqaBFFCZAAFWtAX91RM312.jpg" title="1.png" alt="wKioL1YxgqaBFFCZAAFWtAX91RM312.jpg" />
在Test選項中選擇Cocoa Touch UI Testing Bundle.
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/75/0C/wKiom1Yxgn3DUT5hAAC-IZtn36c004.jpg" title="2.png" alt="wKiom1Yxgn3DUT5hAAC-IZtn36c004.jpg" />
第二步:建立測試代碼。
這裡主要有兩種方式來產生測試代碼:
1、手動建立測試代碼。
開啟測試檔案,在testXXX()方法中添加測試代碼
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/75/0C/wKiom1YxgovDGf9BAAHzs-lUAAg052.jpg" title="3.png" alt="wKiom1YxgovDGf9BAAHzs-lUAAg052.jpg" />
2、通過錄製指令碼的方式產生測試代碼。
選擇測試檔案後,點擊左下方的錄製按鈕,這時候開始進行操作,它會記錄你的操作步驟,並產生測試代碼。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/75/09/wKioL1YxgtGDvR1EAAFBKba_upM936.jpg" title="4.png" alt="wKioL1YxgtGDvR1EAAFBKba_upM936.jpg" />
就是在一些操作後自動產生的測試代碼。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/75/09/wKioL1Yxgt6hnuUkAADh4Hs_ppw219.jpg" title="5.png" alt="wKioL1Yxgt6hnuUkAADh4Hs_ppw219.jpg" />
通過自動產生的程式碼片段,我們能夠分析出測試代碼的結構和一些可點擊控制項的名稱,將這些點擊的方法和控制項名稱記錄下來,之後就可以自己編寫測試代碼了,要知道手動建立的代碼可比錄製的方法靈活的多哦!
第三步:開始測試。
點擊testExample方法旁邊的播放按鈕,它就開始執行你的測試case了,這時候你會看到你的測試App在自動操作。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/75/09/wKioL1YxguiCxB9dAACpJCSz4Tk614.jpg" title="6.png" alt="wKioL1YxguiCxB9dAACpJCSz4Tk614.jpg" />
UI Tests文法簡介
這裡主要給大家介紹一下UI Tests的主要類及方法。
XCUIApplication類:
繼承自XCUIElement,這個類掌管應用程式的生命週期,裡麵包含兩個主要方法:
launch(): 啟動程式
terminate(): 終止程式
XCUIElement類:
繼承自NSObject,實現協議XCUIElementAttributes, XCUIElementTypeQueryProvider,可以表示系統的各種UI元素,它主要包含以下幾個方法。
exist: 可以讓你判斷當前的UI元素是否存在。
descendantsMatchingType(type:XCUIElementType): 取某種類型的元素以及它的子類集合。
childrenMatchingType(type:XCUIElementType): 取某種類型的元素集合,不包含它的子類。
這兩個方法的區別在於,你僅使用系統的UIButton時,用childrenMatchingType就可以了,如果你還希望查詢自己定義的子Button,就要用descendantsMatchingType方法。
另外UI元素還有一些互動方法:
tap(): 點擊。
doubleTap(): 雙擊。
pressForDuration(duration: NSTimeInterval): 長按一段時間。
typeText(text: String): 用於textField和textView輸入文本時使用,使用前要確保文字框獲得輸入焦點,可以使用tap()函數使其獲得焦點。
當然了,這裡也只是給大家簡單介紹了一下常用的函數,具體如何使用還需要大家下去進一步探索哦!
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/75/0C/wKiom1YxgsCj8ZjSAADqcjpg4hg916.jpg" title="QQ群二維碼.png" alt="wKiom1YxgsCj8ZjSAADqcjpg4hg916.jpg" />
【乾貨】iOS9的新特性UI Tests