Android自动化框架常用的有很多,本身也提供了很多自动化测试框架,每个都有其优势和不足 。当然对于我们做UI自动化测试来说,简单易用即可。
UiAutomator也是Android提供的自动化测试框架,基本上支持所有的Android事件操作,且不需要测试人员了解代码实现细节,测试人员可以用uiauto马投入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中的步骤自动执行。