写点什么

Uiautomator2.0

  • 2023-08-08
    北京
  • 本文字数:1144 字

    阅读完需:约 4 分钟

简介


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 直接指定父类也可以在子类中输入文字。<section></section>启动命令变化<br style="box-sizing: border-box;"/>


注意事项


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


获取参数


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 ,


配置如下:<br style="box-sizing: border-box;"/>



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 等


获取更多技术资料,请点击!

用户头像

社区:ceshiren.com 微信:ceshiren2021 2019-10-23 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料,实时更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬。

评论

发布
暂无评论
Uiautomator2.0_霍格沃兹测试开发学社_InfoQ写作社区