Uiautomator2.0

举报
霍格沃兹测试开发 发表于 2022/06/13 18:41:55 2022/06/13
【摘要】 简介Google Android Developers 在2015年3月就发布了UiAutomator 2.0版本。重大特性1.U2 基于 Instrumentation,使用Instrumentation test runner即可运行UiAutomator,反之,也即在基于Instrumentation的test中也能使用UiAutomator; 可以获取应用Context,可以使用An...

简介

Google Android Developers 在2015年3月就发布了UiAutomator 2.0版本。

重大特性

1.U2 基于 Instrumentation,使用Instrumentation test runner即可运行UiAutomator,反之,也即在基于Instrumentation的test中也能使用UiAutomator; 可以获取应用Context,可以使用Android服务及接口。

2.Log日志输出变更。U1可以使用System.out.print输出流回显至执行端,而U2输出到Logcat。

3.Uiautomator1.0与2.0包名不一致 com.android.uiautomator.core. -> android.support.test.uiautomator。

4.基于 Junit4,测试用例无需继承于任何父类,方法名不限,使用Annotation进行; U1需要继承UiAutomatorTestCase,测试方法需要以test开头。

5.与U1的Maven或Ant构建方式不同,U2采用Gradle进行构建; U2输出为APK,Android工程,而U1为Java工程,输出jar包。

6.新增UiObject2、Until、By、BySelector等接口, 详细请参考官方文档。 其中,U2必须明确EditText框才能向里面输入文字,U1直接指定父类也可以在子类中输入文字。

启动命令变化

注意事项

必须与被测应用签名一致,且系统安装被测应用的情况下执行测试用例。

获取参数

u2测试框架基于apk,拥有权限类似APP,无法执行dump等shell权限操作。
可以通过系统签名、root、
device.executeShellCommand(注意只支持API 21+)、Java守护进程方式执行。

在Android 4.4手机出现
NoClassDefFoundError问题,

Instrumentation

消息为

INSTRUMENTATION_RESULT: longMsg=java.lang.NoClassDefFoundError:

org.junit.runner.manipulation.Filter$1 解决: MultiDex手动拆包A ,

配置如下:

uiautomator2.0 应用

使用AndroidStudio创建项目时会自动引入相关依赖等工作,新建工程只要在对应目录下编写测试用例即可执行。如需手动配置,操作步骤如下:

项目集成

配置gradle文件,引入依赖包

用例编写

在modle/src/androidTest/java/packageName下创建用例(新建应用会自动构建一条测试用例,可以直接运行,否则需要手动创建如上目录及用例文件)

用例执行

1、通过gradle project -> module-> tasks -> build -> assembleAndroidTest 构建Android测试apk,然后安装。

2、通过命令如下命令启动测试用例

Api UiDevice

1.UiDevice代表设备状态,为单例模式。

UiDevice的功能包括:

①获取设备信息:屏幕分辨率,旋转状态,亮灭屏状态等

②操作:案件,坐标操作,滑动,拖拽,灭屏唤醒屏幕,截图等

③监听器功能

2.UiDevice写法有两种,推荐第一种方式,第二种可能会引起某些问题而导致无法运行。

①UiDevice.getInstance().pressHome();

②getUiDevice().pressHome();

按键相关的API,常用的按键包括HOME,MENU,BACK,VOLUME_UP,VOLUME_DOWN,RecentApps,POWER等

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。