概述
- uiautomator遵守Junit3标准
配置编写环境
- 配置Java开发环境
- JAVA_HOME:JDK根目录
- path:添加%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
- CLASSPATH:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
- Andrid环境配置
- ANDROID_HOME:sdk根目录
- path:将android sdk中tools目录(通过android list命令验证添加成功)和platform-tools目录(通过adb命令验证添加成功)配置到path中
- ANT环境配置
- ANT_HOME:ant根目录
- path:将%ANT_HOME%/bin目录配置到path中(通过ant命令验证添加成功)
新建测试工程
- 新建Java工程(注意不是Android工程)
- 将android.jar和uiautomator.jar添加到Build Path
- 项目中新建libs目录,用于存放依赖的包
- 将%ANDROID_HOME\%platforms\android-XX目录下的两个文件拷贝到libs目录中
- android.jar
- uiautomator.jar
- 将两个jar包添加到buildpath
- 新建测试类,继承UiAutomatorTestCase
- 编写用例,方法必须test开头。如:
public void testDemo() { UiDevice.getInstance().pressHome(); }
编译与运行测试代码
- 创建build文件
- 在命令行中执行:android create uitest-project -n -t 1 -p
- n:需要发布的jar包的名字,如:demo
- t:需要编译使用的SDK版本的ID编号,可以通过android list命令获取
- p:当前项目根目录
- 执行后在Eclipse刷新项目目录,会发现多了build.xml文件
- 在命令行中执行:android create uitest-project -n -t 1 -p
- 修改build文件
- 打开build.xml文件
- 将<project name="demo" default="help">中的help修改为build
- 开始编译
- 命令行下进入工程目录,执行ant命令
- 编译完成后,查看命令行输出的结果中jar包路径,如D:\android\workspace\Java_TestAndroid_UiAutomator\bin\demo.jar
- push jar包到手机中
- adb push <jar_path>/data/local/tmp
- 例如:adb push D:\android\workspace\Java_TestAndroid_UiAutomator\bin\ /data/local/tmp
- 运行测试
- adb shell uiautomator runtest <jars> -c <包名>.<类名>[#test name]
- jars:指定运行的jar包文件名,位于/data/local/tmp下
- c <CLASSES>
- 运行一个类下的所有用例格式:package_name.class_name
- 测试特定的方法:package_name.class_name#method_name
- 可以指定多个c,可用于指定测试用例顺序
- 如果不指定,默认运行整个jar包下的所有用例
- nohup:指定此参数可以断开pc运行测试用例
- e :传入一个键值对到测试程序中,可用于一些需要变化的参数的传入
- 在测试用例中添加使用参数的代码,如获取手机号码
public void testDemo() { UiDevice.getInstance().pressHome(); Bundle bundle = getParams(); String phone = bundle.getString("phone"); System.out.println("Phone: " + phone); }
- 执行的时候传入-e参数:adb shell uiautomator runtest demo.jar -c com.test.Test#testDemo-e phone 1380000000
- 在测试用例中添加使用参数的代码,如获取手机号码
- 例如:adb shell uiautomator runtest demo.jar -c com.test.Test
- adb shell uiautomator runtest <jars> -c <包名>.<类名>[#test name]
- 之后就可以在模拟器中查看到测试用例执行的效果
运行命令与快速调试
- 上面描述的步骤,无法在Eclipse中直接调试
- 命令调试繁琐效率底下
- 解决方案:将调试步骤转换为脚本
- 创建build文件 -> 修改build文件 -> 开始编译 -> push文件 -> 运行测试
实现步骤
- 打开https://github.com/fan2597/UiAutomatorHelper
- clone项目到本地,导入到eclipse
- 将UiAutomatorHelper.java复制到测试项目中
- 在测试类中新建main函数,如
public static void main(String[] args) { String jarName = "Demo"; //jar包名称 String testClass = "com.test.Test"; //测试类全名 String testCaseName = "testDemo"; //测试用例名 String androidId = "1"; new UiAutomatorHelper(jarName, testClass, testCaseName, androidId); }
- 运行java项目,即可
时间: 2024-10-18 19:25:37