簡介
Android 4.3發布的時候包含了一種新的測試工具–uiautomator,uiautomator是用來做UI測試的。也就是普通的手工測試,點擊每個控件元素 看看輸出的結果是否符合預期。比如 登陸界面 分別輸入正確和錯誤的用戶名密碼然后點擊登陸按鈕看看是否能否登陸以及是否有錯誤提示等。
官方介紹如下:
UI Automator is a UI testing framework suitable for cross-app functional UI testing across system and installed apps.
Note: This framework requires Android 4.3 (API level 18) or higher.
UI Automator是一個UI測試框架,適用於跨系統和已安裝應用程序的跨應用程序功能性UI測試。 注意:它需要Android 4.3 (API level 18)以上版本
UI Automator官方文檔 (有牆需要自備梯子。。)
相關工具
Android SDK在4.3中提供了如下工具來支持UI自動化測試:
- uiautomatorviewer – 一個圖形界面工具來掃描和分析應用的UI控件。存放在tools目錄
- uiautomator – 一個測試的Java庫,包含了創建UI測試的各種API和執行自動化測試的引擎。
要使用該工具,需要滿足如下條件:
- Android SDK Tools, Revision 21 or higher
- Android SDK Platform, API 18 or higher
使用方法
- 開啟真機(或模擬器)的USB調式模式后連接電腦
- 打開設備上的App界面
- 啟動UI Automatorviewer (啟動文件路徑:..sdk\tools\bin\uiautomatorviewer.bat)
- 獲取對應頁面的元素(多設備連接時要選擇需要獲取元素的設備)
注意事項
報錯1
Error while parsing UI hierarchy XML file: Invalid ui automator hierarchy file.
一般Andriod 4.X系統會容易出現,換5.X及以上的系統OK
報錯2
java.lang.ArrayIndexOutOfBoundsException
【解答】一般是設備息屏,導致頁面沒有元素顯示,獲取時數組地址越界報錯,激活設備重啟UI Auto即可
- 演示獲取真機模擬器的界面
- 獲取報錯的筆記
報錯3
Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesn't exist!
這個錯的原因是因為沒有dump下來界面的信息保存到uidump.xml文件中,而該文件保存在/data/local/tmp下,如果沒生成該文件,uiautomatorviewer就會報這個錯。
解決方案為:重啟設備或者重新連接
參考資料:
https://testerhome.com/topics/1988 http://blog.chengyunfeng.com/?p=504