功能测试工具:UiAutomator
yuyutoo 2025-01-13 18:57 1 浏览 0 评论
一天一个关于测试知识点,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。
2. 建立测试工程
通过菜单“File->New->New Project”,如图4-2,建立如下Add 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所示。
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左边菜单栏或者右上方快捷键进行同步操作。
同步完成,切换到Project视图模式,会在External Libraries 中找到相应的类,如图4-6所示。
最后在Android单元测试区建立测试代码myclass。(在src目录中的三个区,androidTest为Android单元测试区、test普通测试区、main为Android代码开发区),如图4-7所示。
今天关于“功能测试工具:UiAutomator”就学习到这里了,每个工作日小编都会更新一个小知识,希望大家多多关注我们,一起来学习喔!
相关推荐
- 如何在HTML中使用JavaScript:从基础到高级的全面指南!
-
“这里是云端源想IT,帮你...
- 推荐9个Github上热门的CSS开源框架
-
大家好,我是Echa。...
- 硬核!知网首篇被引过万的论文讲了啥?作者什么来头?
-
整理|袁小华近日,知网首篇被引量破万的中文论文及其作者备受关注。知网中心网站数据显示,截至2021年7月23日,由华南师范大学教授温忠麟等人发表在《心理学报》2004年05期上的学术论文“中介效应检验...
- 为什么我推荐使用JSX开发Vue3_为什么用vue不用jquery
-
在很长的一段时间中,Vue官方都以简单上手作为其推广的重点。这确实给Vue带来了非常大的用户量,尤其是最追求需求开发效率,往往不那么在意工程代码质量的国内中小企业中,Vue占据的份额极速增长...
-
- 【干货】一文详解html和css,前端开发需要哪些技术?
-
网站开发简介...
-
2025-02-20 18:34 yuyutoo
- 分享几个css实用技巧_cssli
-
本篇将介绍几个css小技巧,目录如下:自定义引用标签的符号重置所有标签样式...
- 如何在浏览器中运行 .NET_怎么用浏览器运行代码
-
概述:...
- 前端-干货分享:更牛逼的CSS管理方法-层(CSS Layers)
-
使用CSS最困难的部分之一是处理CSS的权重值,它可以决定到底哪条规则会最终被应用,尤其是如果你想在Bootstrap这样的框架中覆盖其已有样式,更加显得麻烦。不过随着CSS层的引入,这一...
-
- HTML 基础标签库_html标签基本结构
-
HTML标题HTML标题(Heading)是通过-...
-
2025-02-20 18:34 yuyutoo
- 前端css面试20道常见考题_高级前端css面试题
-
1.请解释一下CSS3的flexbox(弹性盒布局模型),以及适用场景?display:flex;在父元素设置,子元素受弹性盒影响,默认排成一行,如果超出一行,按比例压缩flex:1;子元素设置...
- vue引入外部js文件并使用_vue3 引入外部js
-
要在Vue中引入外部的JavaScript文件,可以使用以下几种方法:1.使用``标签引入外部的JavaScript文件。在Vue的HTML模板中,可以直接使用``标签来引入外部的JavaScrip...
- 网页设计得懂css的规范_html+css网页设计
-
在初级的前端工作人员,刚入职的时候,可能在学习前端技术,写代码不是否那么的规范,而在工作中,命名的规范的尤为重要,它直接与你的代码质量挂钩。网上也受很多,但比较杂乱,在加上每年的命名都会发生一变化。...
- Google在Chrome中引入HTML 5.1标记
-
虽然负责制定Web标准的WorldWideWebConsortium(W3C)尚未宣布HTML5正式推荐规格,而Google已经迁移到了HTML5.1。即将发布的Chrome38将引入H...
- HTML DOM 引用( ) 对象_html中如何引用js
-
引用对象引用对象定义了一个同内联元素的HTML引用。标签定义短的引用。元素经常在引用的内容周围添加引号。HTML文档中的每一个标签,都会创建一个引用对象。...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)