您的位置:首页 > 移动开发

Appium的一点一滴:如果通过uiautomatorviewer获取app的element

2015-12-20 13:16 267 查看

1、如果通过uiautomatorviewer获取app的element

(Windows)uiautomatorviewer是andriod自带的处在andriodsdk安装目录下的tools里面(uiautomatorviewer.bat)

1.1 uiautomatorviewer:分析Android应用UI组件

uiautomatorviewer:分析Android应用UI组件

uiautomator测试框架是Android SDK自带的App UI自动化测试Java库,使用uiautomator测试框架编写自动化用例前,需要使用uiautomatorviewer 识别分析android应用UI组件,文件位于sdk\tools目录下uiautomatorviewer.bat。

使用uiautomatorviewer的方法:

1.连接Android 设备到开发机器,打开被测app

2.运行/tools/目录下的uiautomatorviewer.bat

3.点击uiautomatorviewer用户界面上的“设备截图按钮”

将鼠标悬停在左侧窗口的快照,查看被工具检测到UI控件,窗口右下方显示组件属性和右上方显示层次结构,可选择性的点击NAF按键查看测试框架不能生效的ui组件。



有多个设备连接开发机器时(模拟器或真机),通过设置ANDROID_SERIAL环境变量指定需要截图的设备。

adb devices命令查看连接中的设备编号,设置环境变量set ANDROID_SERIAL=:

a. 运行如下命令获取连接到电脑的设备序列号

$ adb devices

b. 设置ANDROID_SERIAL为需要测试的设备序列号

Windows:set ANDROID_SERIAL=

Unix: eport ANDROID_SERIAL=

如果电脑只连接一个设备则无需设置ANDROID_SERIAL 环境变量。

注意:

1、点击右侧上方的黄三角按钮(Toggle NAF Nodes)来查看不能被uiautomator测试工具访问到的控件。这些控件只设置了有限的属性,所以导致uiautomator无法获取到这些控件。所以你可能很难测试这些控件。这种情况下你可以要求开发者为这些控件添加必要的属性,比如 如果是ImageView或者ImageButton应该添加android:contentDescription属性。

2、由于uiautomator 工具依赖Android设备的可访问行来获取UI控件,所以这不是非常重要的。要支持uiautomator 工具需要一下条件:

使用android:contentDescription属性给 ImageButton, ImageView, CheckBox和其他控件设置标签。使用android:hint 属性来标记EditText 控件,而不是使用里面的文本(文本内容用户是可以修改的)。

对于用来提供操作视觉反馈的UI(文本或者图标),都添加一个android:hint 属性来识别。确保所有用户可操作的界面元素都可以通过方向控制键选中(例如轨迹球)。

通过uiautomatorviewer 工具来确保所有的UI元素都可以被测试工具访问到。还可以通过“辅助功能”(在设置界面)中的“TalkBack”等服务来测试UI的可访问性。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息