Android之UiAutomator测试框架源码分析(第二篇:创建UI Automator项目的3种方案)

创建基于UI Automator测试框架的Ui自动化项目,常见的方案有3种,你可以任选其一,各有利弊,极力推荐第二种方案!

第一种方案(官方推荐)

UiAutomator自动化的测试代码直接编写在App工程中的app模块的src/androidTest目录下,举个例子:假设被测App是微信,此时我们的测试代码直接编写在微信App工程里的app模块中src/androidTest目录下,此时与研发同学共用一个仓库!!Google内部大量采用的是这种方式!

第二种方案(个人推荐)

创建一个完全独立的App工程,将UI Automator的测试代码存放在app module下的src/androidTest目录下。举个例子:假设被测App是微信,此时我们的测试代码并不在微信App的工程里,而是写在一个完全独立的工程中,好处是不与研发的项目代码在一起管理……

第三种方案

测试代码编写在App工程内,但不在app模块的src/androidTest目录下编写测试代码,而是以单独的module而编写。举个例子:假设被测App是微信,此时我们的测试代码编写在微信App工程里的一个单独的module中!如果你有多个App要测试,且决定所有的App复用部分代码,用这个方案比较好!

举例:第二种方案

1、新建App工程

一路Finish,完成App项目的创建

2、切换Project视图模式

3、添加UI Automator测试框架远程依赖库

打开app模块的build.gradle文件

配置UI Automator的远程依赖库,在dependencies闭包中添加以下代码

    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:core:1.3.0-alpha04'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2-alpha04'
    androidTestImplementation 'androidx.test:runner:1.3.0-alpha04'
    androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0'

远程依赖库截图 

4、配置插桩测试默认启动器

打开app模块的build.gradle文件

在android闭包中的defaultConfig闭包中添加如下一行代码(Android Studio已帮你自动添加)

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

5、展开插桩测试代码目录

测试代码全部放在androidTest目录下,第一次展开该目录时,你会看到一个ExampleInstrumentedTest.java文件,它是自动生成的Demo代码文件,直接删除即可

6、创建基于Page Object Model的代码目录(不一定非得用)

基于Page Object Pattern,也称为Page Object Model,缺点是创建的类特别多……

最外层目录:

    common包:存放通用代码:配置信息类、常量类等

    page包:存放表示页面的类,每个对象代表一个页面

    suite包:存放测试套件类,用于组织每个测试用例类

    testcase包:用于存放测试用例类,每个测试用例类中都定义了一个或者多个测试用例方法

    util包:用于存放各种工具类,二次封装的控件查找、操作控件方法

    GlobalManager类:单例对象,负责持有UiDevice(设备对象)、持有Context(被测应用上下文对象)、持有Configurator(配置对象)

本文的测试代码项目结果为初期版本,后续文章会阐述更多,我将使用微信App作为自动化测试demo作为展示……敬请期待!

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值