UiAutomator简介
- Android 4.1发布的时候包含了一种新的测试工具– UiAutomator;
- Android SDK在4.1中提供了如下工具来支持UI自动化测试:
1.UiAutomatorViewer –扫描和分析应用的UI控件的图形界面工具
2.UiAutomator – 测试Java库,包含了创建UI测试的各种API和执行自动化测试的引擎
UiAutomator使用条件
- Android SDK Tools, Revision 21 or higher
- Android SDK Platform, API 16 or higher
UiAutomator 工作流程
- 将需要测试应用安装到手机或者虚拟机中,分析应用的UI界面元素 并确保被测试应用的各个控件可以被测试工具获取到。
- 创建知道测试案例来模拟应用中的用户操作步骤。
- 编译测试案例代码为Jar包并复制该Jar包到安装了待测应用的测试手机中。
- 运行测试并查看结果
- 修改任何发现的bug,然后修复并重新测试。
UiAutomatorViewer 工具
UiAutomatorViewer 工具来获取应用的界面截图。UiAutomatorViewer工具提供了一个便利的方式来查看UI布局结构,并且可以查看各个控件的相关属性。利用这些信息可以用来创建UI测试代码。
分析UI方法
- 把Android手机连接到电脑上或直接用虚拟机
- 打开命令行窗口并导航到目录 /tools/ dos进入命令符
- windows下运行 uiautomatorviewer.bat 命令
- 点击UiAutomatorViewer工具文件夹按钮旁边的“Device Screenshot”按钮来获取当前屏幕界面信息。注意:如果当前电脑连接了多个设备,通过设置ANDROID_SERIAL环境变量来指定要分析的设备。步骤如下: a.运行如下命令获取连接到电脑的设备序列号 $ adb devices b.设置ANDROID_SERIAL为需要测试的设备序列号 Windows:set ANDROID_SERIAL= Unix: export ANDROID_SERIAL= 如果电脑只连接一个设备则无需设置ANDROID_SERIAL 环境变量。
- 查看待测应用的UI界面元素属性 把鼠标放到uiautomatorviewer工具左边的截图中的控件上来查看该控件的属性。属性显示在右侧界面下方,上方显示当前界面的布局结构。 点击右侧上方的黄三角按钮(Toggle NAF Nodes)来查看不能被uiautomator测试工具访问到的控件。这些控件只设置了有限的属性,所以导致uiautomator无法获取到这些控件。所以你可能很难测试这些控件。这种情况下你可以要求开发者为这些控件添加必要的属性,比如 如果是ImageView或者ImageButton应该添加android:contentDescription属性。
开始工作
1.将被测应用装到手机、虚拟机中
2.辨别待测应用UI控件
在开始编写uiautomator测试代码之前,需要先辨别待测应用的UI控件元素。一般而言,优秀的待测应用的UI元素应该是可见的并且用户可以操作的。这些UI元素也应该具有可见的文本标签、android:contentDescription值或者二则兼具。
通过uiautomatorviewer 工具可以查看应用的可见控件。具体使用情况见上面所述。
3.确保待测应用是可访问性
由于uiautomator 工具依赖Android设备的可访问行来获取UI控件,所以这不是非常重要的。要支持uiautomator 工具需要一下条件:
- 使用android:contentDescription属性给 ImageButton, ImageView, CheckBox和其他控件设置标签。
- 使用android:hint 属性来标记EditText 控件,而不是使用里面的文本(文本内容用户是可以修改的)。
- 对于用来提供操作视觉反馈的UI(文本或者图标),都添加一个android:hint 属性来识别。
- 确保所有用户可操作的界面元素都可以通过方向控制键选中(例如轨迹球)。
- 通过uiautomatorviewer 工具来确保所有的UI元素都可以被测试工具访问到。还可以通过“辅助功能”(在设置界面)中的“TalkBack”等服务来测试UI的可访问性。