基于uiautomator的自动化测试框架(功能测试工具UiAutomator)
基于uiautomator的自动化测试框架(功能测试工具UiAutomator) 见本书前面JDK环境安装的章节。 1.安装JDK 一、使用UiAutomator工具的优点 二、下载和配置 为运行UiAutomator,需要下载JDK、ATD等相关软件。
一天一个关于测试知识点,5分钟内讲解你最关心的软件测试问题,今天就接着来谈谈关于软件测试中的“功能测试工具:UiAutomator工具介绍”。
UIAutomator是测试Android原生态APP的功能测试工具。Android 4.1发布时包含了这种新的测试工具—UiAutomator。UiAutomator用来做UI功能测试的。
基于黑盒的UI测试不需要测试人员了解程序是如何实现,只验证各种操作的结果是否符合预期即可。
常用的UI测试方式是人工验证,就是测试人员使用各种类型的手机分别安装待测试的程序,然后看是否能正确完成各种预定的功能。但是,这种验证方式非常耗时间,每次回归都要全部验证一遍,并且还容易出现人为的错误。比较高效和可靠的UI测试方式是自动化测试。自动化UI测试通过创建测试代码来执行测试任务,各种测试任务分别覆盖不同的使用场景,然后使用测试框架运行这些测试任务。
一、使用UiAutomator工具的优点
- (1)编写灵活,使用方便。
- (2)可快速学习。
- (3)限制少。
- (4)可模拟目前90%以上的手工操作。
- (5)扩展性好。
二、下载和配置
为运行UiAutomator,需要下载JDK、ATD等相关软件。
- (1)JDK:1.8以上版本。
- (2)Android Studio。
- (3)Android SDK。
1.安装JDK
见本书前面JDK环境安装的章节。
2.安装SDK
下载SDK文件,配置环境变量。首先建立%ANDROID_HOME%,然后在PATH中加入“%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;” 运行命令adb devices检查是否配置正确。
利用Android Studio环境下建立UiAutomator环境,需要升级sdk中的tools目录,升级方法如下。
(1)运行命令。
C:\Users\xiang>cd %ANDROID_HOME%
(2)把目录名tools改为tool。
(3)运行命令。
C:\ADT\sdk>cd tool\bin
(4)运行命令。
C:\ADT\sdk\tool\bin>sdkmanager –update
(5)在update后,在%ANDROID_HOME%目录下产生新的文件夹tools目录下所有文件拷贝到tool下。
(6)删除tools目录,把tool目录改名为tools。
(7)运行命令。
C:\ADT\sdk>cd %ANDROID_HOME%/tools/bin
(8)运行命令。
C:\ADT\sdk\tools\bin>sdkmanager ----licenses
在这里,特别提醒,如果你不使用Android Studio,而使用Eclipse,SDK update后,使用Eclipse是会有问题的。
三、配置开发测试代码
1.建立Android Studio的SDK
打开Android Studio,通过菜单“File->Other Settings->Default Project Structure”,选择刚才下载的SDK路径。见图4-1。
图4-1 给Android Studio配置SDK路径
2. 建立测试工程
通过菜单“File->New->New Project”,如图4-2,建立如下Add No Activity。
图4-2 建立一个No Activity项目
图4-3 配置这个No Activity项目
进入下一步,进行如图4-3配置。
- l Name:项目名称。
- l Package name:包名称。
- l Save location:项目的工作路径。
- l Language:使用的开发语言。
- l Minimum API level:最小API版本,注意在这里最小API版本不要小与18。
配置成功后,把项目格式改为按Android视图模式查看,然后打开build.gradle。发现文件最后有如下配置。
dependencies {
implementation fileTree(dir: 'libs' include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
项目目录结构如图4-4所示。
图4-4 项目目录结构
Android Studio的类配置通过这里进行配置。一个Android Studio项目分层三个区域。
- l 普通单元测试区:可以使用的命令,testImplementation '包名'。
- l Android单元测试区:可以使用的命令,androidTestImplementation '包名'、testImplementation '包名'。
- l Android产品代码区:可以使用的命令,implementation '包名'。
如果使用的是Android Studio 2.X版本,这里的Implementation都要改为Compile,即androidTestCompile '包名'、testCompile '包名'和compile '包名'。由于UiAutomation是属于Android单元测试框架的,所以通过命令:androidTestImplementation 'com.android.support.test.uiautomator:uiautomator-v18:2.1.1'加在命令最后,即。
dependencies {
implementation fileTree(dir: 'libs' include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
androidTestImplementation 'com.android.support.test.uiautomator:uiautomator-v18:2.1.1'
}
如果希望把加入的与系统生成的独立开来,下面写法也是正确的。
dependencies {
implementation fileTree(dir: 'libs' include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
dependencies {
androidTestImplementation 'com.android.support.test.uiautomator:uiautomator-v18:2.1.1'
}
通过如图4-5左边菜单栏或者右上方快捷键进行同步操作。
图4-5 根据Gradle Files同步项目
同步完成,切换到Project视图模式,会在External Libraries 中找到相应的类,如图4-6所示。
图4-6 External Libraries结构
最后在Android单元测试区建立测试代码myclass。(在src目录中的三个区,androidTest为Android单元测试区、test普通测试区、main为Android代码开发区),如图4-7所示。
图4-7 src目录中的三个区
今天关于“功能测试工具:UiAutomator”就学习到这里了,每个工作日小编都会更新一个小知识,希望大家多多关注我们,一起来学习喔!