Android自動化框架常用的有很多,本身也提供了很多自動化測試框架,每個都有其優勢和不足 。當然對於我們做UI自動化測試來說,簡單易用即可。
UiAutomator也是Android提供的自動化測試框架,基本上支持所有的Android事件操作,且不需要測試人員了解代碼實現細節,測試人員可以用uiautomator投入viewer抓取app頁面的控件屬性,不需要看源碼。基於java,測試代碼結構相對簡單,且容易上手,學習成本不高,一次編譯,所有設備或模擬器都能運行測試,能跨app。當然,不足是:只支持sdk16及以上,不支持Hybird app、webapp。下面,我們來一個小例子,進行說明uiautomator的環境搭建和使用。
一、環境准備
1. 安裝JDK,必要條件。
2. 下載sdk/adt(android所需,目前adt自帶sdk和eclipse,API需要16以上),配置環境變量:先建立ANDROID_HOME,然后在path中添加%ANDROID_HOME%\tools;
3. 安裝ANT工具,並配置環境變量:先建立ANT_HOME變量,然后在path中添加%ANT_HOME%\bin;測試是否成功,運行-ant。
4. 安裝Eclipse,並安裝adt插件。
二、建立Eclipse project
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中的步驟自動執行。