RobotFrameWork+Appium自动化测试之(二)UIAutomatorviewer使用及常见问题

前言:

UIAutiomatorviewer是android-sdk自带的一个元素定位工具,它可以定位到页面上的元素,然后进行相应的点击等操作非常简单好用,使用UIAutiomatorviewer,你可以检查一个应用的UI来查看应用的布局和组件以及相关的属性;然后可以看到手机当前页面的层级关系和每个控件的属性。如:启动这个App,选择要预览的视频进行播放和回控操作,截取当前的屏幕快照,此时UIAutiomatorviewer能够获取对象及Xpath路径,做未唯一标识,且能够编写一次,如此反复循环之,从而提供我们编写脚本的重用性,测试的效率。

1.工具简介

1.1打开目录

1.进入uiautomatorviewer安装目录:C:\Users\maxinxin\AppData\Local\Android\sdk\tools\bin下的uiautomatorviewer.bat文件,点击按钮Device Screenshot按钮,截取手机屏幕快照
  RobotFrameWork+Appium自动化测试之(二)UIAutomatorviewer使用及常见问题_第1张图片

1.2截取屏幕快照

1.正在加载进度条,进行加载中,获取屏幕快照后,截取手机屏幕成功,可以移动鼠标进行查看层级,也可查看相关字段及App的包名、控件标识等
RobotFrameWork+Appium自动化测试之(二)UIAutomatorviewer使用及常见问题_第2张图片

 
2.多设备选择,用户可进行多设备选择,可按照想要的手机快照进行切换,并且可以选择自己的虚拟设备或者真实设备
  RobotFrameWork+Appium自动化测试之(二)UIAutomatorviewer使用及常见问题_第3张图片


2.实例演示

2.1创建uiautomatorviewer项目

启动Robot工具,创建ACloud自动化项目,类型选择目录,如下图所示,在刚创建的项目上创建suit套件,此例中以警视云App,文件名项目名称、填写TestSuit、testcase、类型选择文件,创建suitcase测试用例,目录结构如下所示:
(1)资源名称目录:存放uiautomatorviewer获取对象、封装关键字、操作步骤等
(2)TestSuit目录:存放测试套件文件
(3)testcase文件:存放执行自动化执行测试用例
  RobotFrameWork+Appium自动化测试之(二)UIAutomatorviewer使用及常见问题_第4张图片

2.2获取对象的resource-id

打开uiautomatorviewer,连接手机后,点击“应用中心” 在右侧出现resource-id,拷贝即可
(1) text:对象名称
(2) resource-id:对象唯一识别名称
(3) package:包名
  RobotFrameWork+Appium自动化测试之(二)UIAutomatorviewer使用及常见问题_第5张图片

2.3创建对象

打开创建的资源,创建scalar创建变量
(1)Variable:自定义即可(建议以统一格式,方便管理和操作) 
(2)Value:对于uiautomatorviewer中的resource-id
(3)comment:备注要创建的对象的名称和作用
  RobotFrameWork+Appium自动化测试之(二)UIAutomatorviewer使用及常见问题_第6张图片

2.4封装对象

根据以上方法创建看着有些繁琐,其实RIDE也提供了较好的封装机制,你可以根据需要把一些常用和繁琐的操作进行封装,创建关键字,自定义你需要的步骤即可,封装后步骤如下:
  RobotFrameWork+Appium自动化测试之(二)UIAutomatorviewer使用及常见问题_第7张图片

2.5编写测试用例

创建好对象和关键字后,接下来我们要进行测试用例编写,步骤可以根据提供的相关类库和导入资源进行编写,严格按照参数及返回值即可,如下所示:
  RobotFrameWork+Appium自动化测试之(二)UIAutomatorviewer使用及常见问题_第8张图片

2.6用封装的关键字编写用例

上述提到关键字封装,根据封装的关键字更加简洁,既然封装用例也可进行封装关键字步骤
  RobotFrameWork+Appium自动化测试之(二)UIAutomatorviewer使用及常见问题_第9张图片

2.7运行测试用例

前面通过创建对象和编写用例完成后,到最后连接手机后,点击start按钮运行,测试人员可根据运行结果,可查看绿色代表运行成功,且pass标识
  RobotFrameWork+Appium自动化测试之(二)UIAutomatorviewer使用及常见问题_第10张图片


3.总结

3.1控件定位

上述方法介绍了uiautomatorviewer工具的简单实用和实例演示,通过该工具我们可以定位到控件的ID,摒弃了原有的坐标定位,这种方式通过横向模拟该控件输入文本的过程,当然uiautomatorviewer还提供了根据text来获取控件。

3.2元素对象

相比Monkeyrunner来说它的好处就是:Monkeyrunner是坐标点击,当一个脚本写好后,换一个分辨率的手机去执行,点击的位置可能就会出错,譬如定位回控按钮、预览按钮等多个监控点情况下的设备时,而uiautomatorviewer点击是先找到该控件,然后再点击该控件,因此可移植性比Monkeyrunner要好。 

3.3封装易读性

利用RobotFrameWork环境可以将每个库种的关键字、控件元素进行封装,从而增强编写的测试用例的易读性。





4.常见问题(FAQ)

一、启动后报:Unable to connect to adb. Check if adb is installed correctly错误?

1.打开uiautomatorviewer.Bat,找到最后一行
如图:
 


2.把【%prog_dir%】修改为SDK 的 platform-tools 所在路径
我的路径是:【C:\Users\maxinxin\AppData\Local\Android\sdk\platform-tools】
如图:
 


二、报错,套接字连接一次?

卸载电脑上的金山手机助手、360手机助手等,占用该端口,再次启动uiautomatorviewer点击即可


三、启动后,无响应?

1.检查ANDROID_HOME和JAVA_HOME的环境变量是否正确
(1)ANDROID_HOME环境变量为:
C:\Users\maxinxin\AppData\Local\Android\sdk\platform-tools
(2)JAVA_HOME环境变量为(多了一个环境变量),修改为:
C:\Program Files\Java\jdk1.8.0_121
2.删除JAVA_HOME的一个环境变量后,再次启动uiautomatorviewer.Bat
 
RobotFrameWork+Appium自动化测试之(二)UIAutomatorviewer使用及常见问题_第11张图片



四、UIautomatorviewer无法识别webview控件?

(1)可能由于webview特殊设置所以识别不到对象,查看日志结果如下,提示没有没创建该对象,解决方案:启动Inspector
  RobotFrameWork+Appium自动化测试之(二)UIAutomatorviewer使用及常见问题_第12张图片
(3)结果:开启Inspector后,再次获取快照后,正常识别成功
 
RobotFrameWork+Appium自动化测试之(二)UIAutomatorviewer使用及常见问题_第13张图片


五、C盘Python27下有感叹号提示

1.C盘Python27下目录和SVN上不一致
 

六、输入appium-doctor提示JAVA_HOME is not set

RobotFrameWork+Appium自动化测试之(二)UIAutomatorviewer使用及常见问题_第14张图片
 
解决:找到C盘目录,拷贝至环境变量中
RobotFrameWork+Appium自动化测试之(二)UIAutomatorviewer使用及常见问题_第15张图片



你可能感兴趣的:(自动化测试)