Uiautomator之入门
优点:1.可以对所有操作进行自动化,操作简单;
2.不需要对被测程序进行重签名,且,可以测试所有设备上的程序,比如~某APP,比如~拨号,比如~发信息等等
3.对于控件定位,要比robotium简单一点点
缺点:1.uiautomator需要android level 16以上才可以使用,因为在level 16及以上的API里面才带有uiautomator工具
2.如果想要使用resource-id定位控件,则需要level 18及以上才可以
3.对中文支持不好(不代表不支持,第三方jar可以实现)
4.个人感觉,控件定位不如robotium那样层级分明,仅仅个人感觉,用户行为注入还是和插桩有点点区别的
第一步、环境准备:
1.JDK1.8(1.7我试验了果断不好使,一点不惯病)
2.eclispse(IDE尊崇个人意愿)
3.android SDK以及配置
4.ANT(主要用于build我们的脚本,生成jar包)
ant的搭建主要分几步:1.下载ant安装文件并且解压安装;
2.新建系统环境变量ANT_HOME,参数值是你的ant安装目录;
3.在Path环境变量中添加ant安装目录的bin文件夹,比如我的就是C:\cod\apache-ant-1.9.6\bin
4.配置完以后,测试一下,在命令行下输入ant -version,如果显示你所安装的ant版本信息,证明环境变量配置成功
第二步、建立我们的测试工程:
一、建立Java Project(普通Java项目)
二、添加依赖jar
对应安卓版本的jar,如我的是android-18
android.jar
uiautomator.jar
三、在测试工程src文件夹中add package,然后添加一个class文件,
随便写一个测试类:
如下:
package com.uiautomator.www; import com.android.uiautomator.core.UiDevice; import com.android.uiautomator.core.UiObject; import com.android.uiautomator.core.UiSelector; /** * 测试点击HOME键,启动51CTO应用 */ import com.android.uiautomator.testrunner.UiAutomatorTestCase; /** * * @author Administrator * * */ public class Demo extends UiAutomatorTestCase{ public void testDemo() throws Exception{ UiDevice device = UiDevice.getInstance(); if (device.isScreenOn()) { device.wakeUp(); } UiObject object = new UiObject(new UiSelector().text("51CTO学院")); object.click(); } }
四、查看当前查看对应android版本的SDK的ID值
android list target
五、创建测试:
运行命令:android create uitest-project -n <name> -t <android-sdk-ID> -p <project_path>
比如:
android create uitest-project -n AutoRunner -t 2 -p F:\workspace\DemoTest
说明:
上面的name就是将来生成的jar包的名字,可以自己定义;android-sdk-ID就是上面看到的对应android版本的SDK id;path是Eclipse里刚才建立的测试工程的路径;运行命令后,将会在工程的根目录下生成build.xml文件。如果没生成,检查上面的步骤。
六、j编译生成jar
CMD进入测试工程目录,然后运行ant build,将使用ant编译生成jar,成功将会提示:
成功后,会在工程bin目录下生成对应名称的jar包
七、将jar包push到手机data/local/tmp目录下,
对应的命令是:adb push <jar文件路径> data/local/tmp
adb push AutoRunner.jar /data/local/tmp
八、运行测试:
然后使用命令行启动我们已经push进去的uiautomator脚本
adb shell uiautomator runtest <jar文件名> -c <工程中的类名(包含包名)>
adb push AutoRunner.jar /data/local/tmp
例:
adb shell uiautomator runtest AutoRunner.jar -c com.uiautomator.www.Demo
完成这一步后,手机会执行uiautomator脚本并且开始进行操作
优秀不够,你是否无可替代
软件测试交流QQ群:721256703,期待你的加入!!
欢迎关注我的微信公众号:软件测试君