UIAutomator 是随 Android SDK 一起发布的一个测试框架,该测试框架提供了一系列 API,利用这些 API 我们可以编程和安卓 App 进行交互,例如:打开设置菜单,点击,滑动等。并且可以对设备进行物理指令操作,如:旋转设备,获取设备分辨率等。该测试框架的 jar 包可以在 SDK 的安装目录中找到:
/platforms/android-$version/uiautomator.jar
其中 $version 为安装的 SDK 版本号。
在写测试demo之前,可以先熟悉待测应用的UI组件(包括视图views和控件controls)。uiautomatorviewer可以帮助你实现这一点,uiautomatorviewer获取当前UI界面的快照,提供一个可视化的界面,来检查布局层次、查看每一个显示在设备上的UI组件的属性。在以后的uiautomator测试中,你可以利用uiautomator提供的信息来选择特定的UI组件。
分析待测程序的UI组件的步骤:
1. 将android设备连接到有开发环境机器上
2. 打开命令行终端窗口,进入android sdk tool所在目录
3. 运行以下命令:
$ uiautomatorviewer
4. 捕获到待分析的界面后,点击设备快照“Device Screenshot”按钮
注意:如果你连接了多个设备,需要指定ANDROID_SERIAL 环境变量,来说明对哪个设备进行截屏:
a. 运行以下命令,找到你的设备序列号
$ adb devices
b. 设置环境变量ANDROID_SERIAL
在windows上:
set ANDROID_SERIAL=<device serial number>
如果你只连接一个设备,则不需要设置
以下是测试应用接口详细介绍(感谢大神总结)和谷歌 UIautomator官网中文翻译网站地址:
简介
Uiautomator是谷歌推出的,用于UI自动化测试的工具,也就是普通的手工测试,点击每个控件元素看看输出的结果是否符合预期。比如登陆界面分别输入正确和错误的用户名密码然后点击登陆按钮看看是否能否登陆以及是否有错误提示等。
注意:UI Automator测试框架是基于instrumentation的API,运行在Android JunitRunner 之上,同时UI Automator Test只运行在Android 4.3(API level 18)以上版本。
准备
集成UI Automator,首先需要保证App项目已经依赖了Gradle Testing。然后在gradle中添加如下依赖即可。
dependencies {
androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.1'
}