要写UIAutomator的testcase,首先要用Eclipse创建一个Java Project
需要将Junit 的lib加入到工程里
还要添加android.jar和uiautomator.jar,这两个文件在android sdk中,没有升级SDK的朋友,建议升级到最新的SDK,因为uiautomator还有些不完善,在老的SDK上有些功能还不能用
创建好工程后,就可以写case了,我们使用官方帮助中的例子,为了简单,采用官网上的例子,并且精简至一个home命令,方便大家把流程先跑起来
http://developer.android.com/tools/testing/testing_ui.html
<p> // Import the uiautomator libraries package com.uia.example.my; import com.android.uiautomator.core.UiObject; import com.android.uiautomator.core.UiObjectNotFoundException; import com.android.uiautomator.core.UiScrollable; import com.android.uiautomator.core.UiSelector; import com.android.uiautomator.testrunner.UiAutomatorTestCase; public class test extends UiAutomatorTestCase { public void testDemo() throws UiObjectNotFoundException { // Simulate a short press on the HOME button. getUiDevice().pressHome(); } } </p><span class="tag"></span>
创建一个编译配置文件
<span style="font-size: 18px; "><span class="tag"><android-sdk></span><span class="pln">/tools/android create uitest-project -n </span><span class="tag"><name></span><span class="pln"> -t 1 -p </span><span class="tag"><path></span></span>
说明一下各个参数的作用,如果已经将android sdk的路径配置到了系统的path中,输入命令“android create uitest-project”就可以查看到相应的帮助
-n --name : Project name. 就是在eclipse中创建的项目的名字。
-t --target : Target ID of the new project. [required] 这个id是本机上android targets的id,可以通过命令 “android list”来查询,得到如下图的结果,选择android-17以上版本前面所对应的id
根据我电脑的情况我的命令是这样的
<span style="font-size: 18px; "><span class="tag"></span>D:\work\android-sdk\tools>android create uitest-project -n UiAutomator -t 6 -p D:\work\eclipse\workshop\UiAutomator <span class="pln"></span></span>
创建成功的输出如下
从eclipse中可以看到有3个新增加的文件
在build.xml上点击右键,选择“Run As” -> "Ant Build",可以看到下面的输出,这个输出实际上是一个帮助,是对build.xml的作用进行说明的。在build.xml中配置上相应的选项可以完成相应的操作。
在build.xml的配置上,将default后面的选项改为"build"后,就可以build jar包了。
同样执行Run As操作,就可以build 成功了。目标文件声称在工程目录下的bin文件夹下。
剩下的操作就和官方网站上一样了。将jar push到手机中,然后执行就可以了
adb push UiAutomator.jar /data/local/tmp/
adb shell uiautomator runtest UiAutomator.jar -c com.uia.example.my.test