Android之UiAutomator测试框架源码分析(第一篇:简要介绍与学习计划)

(本文基于:androidx.test.uiautomator:uiautomator:2.2.0)

    学习UI Automator测试框架前,先了解一些与UI Automator测试框架相关的知识……

什么是UiAutomator?

    UiAutomator的官方名称是UI Automator,可能因为单词连贯起来更易读,它的别称UiAutomator在互联网反而更常见!UI Automator测试框架是Google提供的一个Android平台下的Ui功能自动化测试框架(简称:Ui自动化测试框架),该测试框架最大的优势:支持跨应用的Ui功能自动化测试。当然除了跨应用(跨进程)场景下的使用,用在单个App下同样表现出色!由于UI Automator测试框架提供的类并不多,所该测试框架常被称为一个轻型的Ui自动化测试框架!

什么是uiautomatorviewer?

    uiautomatorviewer是一个布局检查工具,它是UI Automator测试框架的配套工具,我们使用此工具可以获取屏幕中任意一个Window持有的View树的每个控件的信息,包括控件的基本属性,以及位于View树中的信息等等。使用UI Automator测试框架编写自动化测试代码时,建议优先选择uiautomatorviewer工具查看View树中的控件,另一个推荐的工具则是集成在Android Studio中的Layout Inspector,除了官方的工具之外,还可以通过工程中的布局文件、源码、去获知View的各种信息,或者第三方工具,只要能获得控件属性即可!

UiAutomator的设备兼容性

UiAutomator测试框架最低支持的Android版本是Android 4.3(API 级别 18),最大支持的API版本是最新版本,因为是官方的测试框架,所以不必担心系统兼容性问题,目前笔者所述时,它的UI Automator库的最新版本为2.2.0

UiAutomator的历史

早期版本的Uiautomator测试框架(2.0版本以下),每次测试代码开发完成后,需要构建成一个Jar包,然后需要将Jar包通过adb工具push到手机的/data/local/tmp目录中,再通过adb shell命令行启动自动化测试,这个时期的UI Automator测试框架被广大开发者称作UiAutomator1.0版本(可能跟Appium有关,Appium测试框架就是这么区分UI Automator测试框架的……)。本文书写时的UI Automator测试框架版本是2.2.0,作为最新版本的Uiautomator测试框架,已经完全废弃原有的构建成Jar包的启动方式,同时新版本的测试框架也增加了更多、更快的启动方式:使用Android Studio的GUI窗口直接运行、使用adb shell am instrument命令行启动、使用gradlew的任务connectedAndroidTest进行启动、3种启动方式各有利弊,本系列文章将会对每一种启动方式进行详细的阐述

优势

1、UiAutomator测试框架的代码内置在当前App工程的<module_name>/src/androidTest/java下

2、Google稳定的技术支持,不用担心Android版本适配,也不必担心那种偶现的坑人bug,你知道Google的技术是有多牛逼!

3、支持跨应用操作界面,比如经常需要用到微信登录,修改设置等等,都可以通过代码方式去实现……

4、UiAutomator测试框架的自动化测试可以运行在Firebase平台、AWS等云台进行UI自动化测试

5、可以结合Espresso测试框架共同使用

6、处于最底层,相对Appium这些上层使用UI Automator的测试框架,更容易维护(毕竟少一层维护)

学习计划

UI Automator测试框架经常使用几个类,比如UiDevice、UiObject2、BySelector、Until、UiObject、UiSelector、Condition等等,快速熟练掌握他们的API,深入理解代码实现,本系列文章将全面学习UI Automator测试框架的使用、代码实现、以及自动化设计思想等等

1、熟悉UI Automator测试框架的基本搭建方式(基于PageObjectModel)

2、熟悉API

 包括接口、类、枚举类、异常类,共计4部分代码组成

3、熟悉UI Automator的各种原理

插桩测试启动过程、查找控件、操作控件、检查控件等等

4、熟悉Uiautomator的并发执行、Uiautomator的报告

5、熟悉完整的UI Automator自动化项目

6、熟悉使用Jenkins搭建Ui自动化

7、熟悉利用远程云台执行插桩测试

8、熟悉必须使用的设计模式

9、熟悉实现过程中需要进行的封装设计

等等

相关资料

UI Automator  |  Android 开发者  |  Android Developers 官方介绍Uiautomator框架

测试多个应用的界面  |  Android 开发者  |  Android Developers 测试多个应用的界面

GitHub - android/testing-samples: A collection of samples demonstrating different frameworks and techniques for automated testing 官方Demo

androidx.test.uiautomator  |  Android Developers Uiautomator框架API文档

AndroidJUnit4  |  Android Developers AndroidJunit4文档

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值