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中的步骤自动执行。