背景: 最近做個會員登入系統(tǒng),前端驗證賬號密碼宙暇、修改密碼输枯、注冊會員等一系列輸入框的數(shù)據(jù)格式是否符合預期,每次都需要重新運行手機 手動輸入測試數(shù)據(jù)占贫,測試代碼是否正確桃熄。然后我就想到了UI Tests這個工具,之前只是簡單的了解過型奥,沒有真正的運行到實際開發(fā)中瞳收。
這里記錄一下我自己的使用心得。算是一個記錄筆記厢汹。方便后期查看螟深。 廢話不多說。我們直接進入正題坑匠。
很多人在剛剛開始接觸的iOS開發(fā)的時候血崭,從來沒有注意過再建立iOS項目的時候下面的三個選項
coredata: 蘋果基于SQLlite封裝的存儲框架
Unit Tests: 單元測試,使用測試函數(shù)。以保證你的方法在不停的修改開發(fā)中夹纫。保持正確
UI Tests:? 顧名思義可以自動化UI交互測試咽瓷,也是這里記錄的重點
創(chuàng)建UI Tests 有兩種方式
1. 在創(chuàng)建工程的時候勾選?
2.? 在Xcode導航欄 File -> New -> Target ->iOS->iOS UI Testing Bundle 文件名隨意,不過最好按照默認工程文件名
接下來我們會看到UITests文件舰讹,打開改文件看到有四個方法茅姜,我們的測試代碼就添加在testExamle() 中:
這里我先簡單的寫一個demo 以方便后續(xù)的測試。功能有:? 1. 首頁有賬號密碼輸入框? 2. 登入按鈕月匣。3. 取消按鈕钻洒, 然后還有一個會員中心頁面,該頁面只是一個空白頁面锄开。如圖
現(xiàn)在來開始添加測試代碼素标,在最開始可能無從下手,測試代碼是什么鬼萍悴。Xcode提供給我們可以錄制動作 并且把錄制動作添加為代碼的功能
點擊開始錄制之后 會重新打開你的APP 然后根據(jù)你的需求头遭,操作?testExample()這個都會記錄下來 你的步驟如:
這就是我們要寫的測試代碼。 然后我們點擊
就會開始重新自動測試癣诱, 好了這個時候计维,我們就可以觀察這些代碼 并且修改這些代碼,已達到我們想要的測試效果撕予。如修改輸入的值鲫惶,換個點擊事件,延時點擊实抡,多次點擊等等欠母。 下面介紹一下測試代碼的語法:
首先是XCUIApplication類 這個類管理程序的生命周期:主要有兩個方法 launch()應用啟動 terminate() 應用結束,我們需要從這個類的對象里面獲取我們屏幕的元素澜术,也就是UI控件
1. 獲取控件: XCUIApplication().textFields["請輸入您的的賬號"]?
2. 設置交互:??(1)點擊 XCUIApplication().buttons["login"].tap? (2)雙擊 XCUIApplication().buttons["login"].doubleTap (3) 長按:XCUIApplication().buttons["login"].pressForDuration(duration: NSTimeInterval)?
3. 設置輸入框:?typeText 等
更多用法這里就記錄艺蝴。 自己使用的時候猬腰,琢磨一番就會明白鸟废。?
總結:?
UI Tests 可以做一些基礎的測試。 在我們開發(fā)過程中的許多地方我們需要重復的運行姑荷,手動的測試盒延。UI Tests 只需要我們簡單的修改一些參數(shù)就可以自動開始測試。非常方便鼠冕。 不過也有一些不足之處添寺。如 功能單一、存在一些bug 等懈费。
如果需要Demo:https://gitee.com/stanleyCocoa/UITestsDemo.git?