在Android 4.1发布的时候包含了一种新的测试工具–uiautomator,uiautomator是用来做UI测试的。也就是普通的手工测试,点击每个控件元素 看看输出的结果是否符合预期。比如 登陆界面 分别输入正确和错误的用户名密码然后点击登陆按钮看看是否能否登陆以及是否有错误提示等。
功能性或者黑盒UI测试不需要测试人员了解程序如何实现的,只需要验证各种操作的结果是否符合预期即可。这样的测试可以分离团队的开发人员和测试人员。大家各干各的没有太多的交集。
常用的UI测试方式就是人工验证啦,就是测试人员拿着各种手机分别安装要测试的程序然后看看是否能正确完成各种预定的功能。但是这种验证方式是非常耗时间的,每次回归都要全部验证一边,并且还容易出现人为错误。比较高效和可靠的UI测试方式就是自动化测试。自动化UI测试创建测试代码来执行测试任务,各种测试任务分别覆盖不同的使用场景,然后使用测试框架来运行这些测试任务。
uiautomator 就是你的自动化UI测试工具。
要写UIAutomator的testcase,首先要用Eclipse创建一个Java Project
需要将Junit 的lib加入到工程里
还要添加android.jar和uiautomator.jar,这两个文件在android sdk中,没有升级SDK的朋友,建议升级到最新的SDK,因为uiautomator还有些不完善,在老的SDK上有些功能还不能用
创建好工程后,就可以写case了,我们使用官方帮助中的例子,为了简单,采用官网上的例子,并且精简至一个home命令,方便大家把流程先跑起来。
package com.nicky.test;
import com.android.uiautomator.core.UiObjectNotFoundException;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;
public class UItest extends UiAutomatorTestCase {
public void testDemo() throws UiObjectNotFoundException{
getUiDevice().pressHome();
}
}
创建一个编译配置文件
/tools/android create uitest-project -n -t 1 -p
说明一下各个参数的作用,如果已经将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
根据我电脑的情况我的命令是这样的
D:\work\android-sdk\tools>android create uitest-project -n UiAutomator -t 6 -p D:\work\eclipse\workshop\UiAutomator
创建成功的输出如下
从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
其中:con.uia.example.my是引入的包名
test是类名字
原文地址:http://blog.csdn.net/robinzhou/article/details/8447058
http://blog.chengyunfeng.com/?p=504