- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
UiAutomator自动化测试
1 UI自动化测试框架介绍
测试框架
介绍
优缺点
Monkeyrunner
语言:python
运行环境:python环境,pc连接设备后adb运行脚本文件
测试对象:UI测试
优点:操作简单,可以录制测试脚本
缺点:主要使用坐标,移植性不强,业务逻辑判断较差
Instrumentation
语言:java
运行环境:adb命令启动或者手机中直接启动
测试对象:白盒测试、UI测试
1、针对单个apk测试
2、需要源码,需要对apk重新签名
3、需要root权限
Robotium
语言:java,基于Instrumentation的封装
运行环境:同Instrumentation
测试对象:同Instrumentation
同Instrumentation
UiAutomator
语言:java
运行环境:pc连接设备后adb运行脚本文件或直接通过eclipse运行
测试对象:UI测试
优点:
1、简单易学,可模拟大部分手工操作
2、无Activity限制,无需签名,无需root权限
3、基于应用UI元素控制,灵活精确
缺点:
1、无法配合 OpenGL和HTML5应用使用,因为这些应用没有 Android UI 组件
2 UiAutomator简介
UiAutomator是google在安卓4.1版本推出的一套基于UI控件的自动化测试框架,可模拟人对手机的操作,主要用于UI自动化测试。由下面两套工具组成:
Uiautomatorviewer:扫描、分析待测应用的UI组件的图像工具(路径: sdk安装文件夹\tools\uiautomatorviewer.bat)。
Uiautomator:包含功能界面测试API和自动化运行测试用例的引擎的JAVA类库。
3 UiAutomator框架
UiDevice
代表设备状态,可以通过UiDevice来检测设备的各种属性如当前屏幕尺寸,同时也可以进行设备级别相关操作:按钮、拖拽、转换屏幕转向
UiSelector
代表UI控件搜索的条件,基于对元素描述的各种属性,可以获得该元素控件从而进行相关操作
UiObject
代表一个UI控件,通过UiSelector来查找UiObject
UiCollection
代表控件的集合,通过UiSelector选取符合条件的元素集合,通常用于遍历
UiScrollable
代表可滚动控件,模拟水平或者垂直滚动的UI元素,当元素在屏幕外需要滚动屏幕才能看到的情况下需要使用UiScrollable
4 UiAutomator环境搭建
开发工具:eclipse
开发环境:JDK1.6以上
编译环境:Android SDK、 Ant(基于Java的构建工具,用于编译uiatutomator测试工程,自动完成所有的构建过程)
5.1 UiAutomator对象之UiDevice
通常用于获取系统的设备信息、系统按键、全局操作等
1、获取坐标参数
UiDevice.getInstance().getDisplayHeight()/getDisplayWidth() 获取屏幕高度/宽度
2、获取信息信息,包括屏幕分辨率、亮灭屏状态等
UiDevice.getInstance().getCurrentActivityName() 获取当前界面Activity
3、滑动、拖拽操作
UiDevice.getInstance().drag(startX, startY, endX, endY, steps)
拖拽坐标处对象到另一个坐标
4、输入按键
UiDevice.getInstance().pressKeyCode(KeyEvent.KEYCODE_A)
5、系统按键
UiDevice.getInstance().wakeUp()/sleep() 按电源键亮屏/灭屏
5.2 UiAutomator对象之UiSelector(1)
通常使用UiSelector,通过各种属性节点和关系来定位组件。
通过uiautomatorviewer,我们可以找到很多对象的属性,可以通过这些属性来定位需要的元素对象
5.3 UiAutomator对象之UiSelector(2)
1、通过text、description属性定位
UiSelector().text(text) //通过text完全定位
UiSelector().description(description) //通过description完全定位
2、通过resourceId定位
UiSelector().resourceId(id) //通过resourceId定位
3、通过class、package定位
这种方式适用于当前页面上
文档评论(0)