Android自動化框架經常使用的有不少,自己也提供了不少自動化測試框架,每一個都有其優點和不足 。固然對於咱們作UI自動化測試來講,簡單易用便可。java
UiAutomator也是Android提供的自動化測試框架,基本上支持全部的Android事件操做,且不須要測試人員瞭解代碼實現細節,測試人員能夠用uiautomator投入viewer抓取app頁面的控件屬性,不須要看源碼。基於java,測試代碼結構相對簡單,且容易上手,學習成本不高,一次編譯,全部設備或模擬器都能運行測試,能跨app。固然,不足是:只支持sdk16及以上,不支持Hybird app、webapp。下面,咱們來一個小例子,進行說明uiautomator的環境搭建和使用。android
1、環境準備web
1. 安裝JDK,必要條件。shell
2. 下載sdk/adt(android所需,目前adt自帶sdk和eclipse,API須要16以上),配置環境變量:先創建ANDROID_HOME,而後在path中添加%ANDROID_HOME%\tools;app
3. 安裝ANT工具,並配置環境變量:先創建ANT_HOME變量,而後在path中添加%ANT_HOME%\bin;測試是否成功,運行-ant。框架
4. 安裝Eclipse,並安裝adt插件。eclipse
2、創建Eclipse projectwebapp
1. 打開Eclipse,new-新建java project,輸入project 名 UIAutomator,點擊finish。工具
2. 添加Android庫學習
找到路徑sdk\platforms\android-20下面的android.jar和uiautomator.jar,copy到project的lib下。
把Android.jar 和uiautomator.jar build path中來。
3. 新建第一個Demo程序
代碼中,寫入 getUiDevice().pressHome();一行代碼進行測試。
4. 查看sdk ID
cmd進入sdk\tools\ 目錄下,運行命令:android list,查看API 大於15的SDK的ID值,及當前已安裝Android版本,當前是1
5. 生成bulid文件
在\sdk\tools\目錄下,運行命令:android create uitest-project -n <name> -t <android-sdk-ID> -p <path>
其中name爲未來生成的jar包的名字,能夠本身定義,android-sdk-ID爲上一步驟看到的1,path是project的路徑名稱,android create uitest-project -n first -t 1 -p E:\workspace\UIAutomator
運行命令後,將會在工程的根目錄下生成build.xml文件
6.編譯生成jar
cmd進入項目的project目錄,而後運行ant build,使用ant編譯生成jar,執行以下:
在bin目錄下生成rar文件
7. push並運行jar
adb push <jar文件路徑> data/local/tmp
實際執行命令爲:adb push E:\workspace\UIAutomator\bin\first.jar data/local/tmp
8. 運行jar文件
adb shell uiautomator runtest <jar文件名> -c <包名.類名>
實際運行命令爲:adb shell uiautomator runtest first.jar -c com.iu.android.TestPage.TestDemoOne(注意不要寫錯包名和類名),能夠看到手機會按照Runner中的步驟自動執行。