[安卓自动化测试] 001.UIAutomator初探

2024-02-16 10:50

本文主要是介绍[安卓自动化测试] 001.UIAutomator初探,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

UIAutomator初探

这篇文章你会学到的东西:
1、什么是自动化测试
2、有哪些测试
3、自动化测试工具
4、认识UIAutomator
5、用UIAutomator制作第一个自动化测试工具。


ps:笔者也是刚开始学习UIAutomator,若有错误的地方,或者有更好的操作方式,望请不吝赐教。

偷懒改变世界。
人们懒的走路,发明了汽车。
人们懒的爬楼梯,发明了电梯。
人们懒的洗衣服,发明了洗衣机。
人类的进步,离不开偷懒而又聪明的发明家。现在,一群偷懒而又聪明的程序员将偷懒上升到新的高度——利用程序来进行自动化测试。将测试员从繁琐的测试用例中解放出来,从此,可以一边喝着咖啡一边看着机器自动的执行测试,测试员不必看着测试用例重复进行无数次的测试步骤,也不必担心失误而导致不必要的错误,更不用担心压力测试而导致身心疲惫。UIAutomator就是这么一个被聪明的偷懒家发明出来的东西。我们可以使用它,来编写自动测试的代码,执行这些代码,就可以让机器自己执行测试,而我们,嘿嘿,去喝杯咖啡或者看看足球比赛吧。

什么是自动化测试

自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。

有哪些测试

1、Google CTS测试:兼容性测试,测试ROM的兼容性标准
2、实验室机器人测试,机械臂自动化模拟测试
3、Monkey Test 压力测试
4、End User Test 终端用户测试
对于美国的手机运营商,如:T-Mobile、Sprite、AT&T,他们都有自己一系列的手机性能测试、他们的测试项目、测试方法、测试过程,其实都是他们的商业机密,一个保证测试结果的严谨性,一个也保证了手机厂商能够不作弊的完成测试。所以千万不要学华X手机,在T-Mobile实验室偷拍手机机器人的软件、技术参数及其他机密信息,而被T-Mobile列入北美黑名单。逗比新闻

自动化测试工具

MonkeyRunner

monkeyRunner提供一个API来控制Android设备。可以写一个Python脚本来安装应用、运行应用、发送键值、截图。monkeyRunner对python进行了封装,加入一些针对Android设备的类。可以完全用python脚本来实现这些功能。适用于压力测试。

Instrumentation

基于Android单个Activity的测试框架。适用于白盒测试

Robotium

一个优秀的测试框架,基于Instrumentation的二次封装。使用于白盒测试

QTP

一个web上的自动化测试工具,通过录制脚本来实现自动化测试。

UIAutomator

目前最佳的UI自动化测试框架。基于Android4.x+系统,专业UI自动化测试,可以模拟用户操作手机的各种行为。编写快速,可以使用大部分Android Api、无需前面,没有Activity限制。

认识UIAutomator

UIAutomator,翻译过来就是Android UI 自动化测试,在Android4.1版本中推出了UiAutomator测试框架,此框架一改过去较麻烦的UI自动化测试,和解放了过去诸多枷锁,让UI自动化测试变得非常容易和简单。

用UIAutomator制作第一个自动化测试工具

我们用UIAutomator制作一个自动化测试工具,它只有一个简单的能力——帮助我们按手机的Home键。

第一步:创建一个测试工程

我们用ADT来创建一个测试工程。

创建一个java Project。

选中菜单栏->File->New->Java Project就可以创建一个java工程了。
如图所示:

alt text

添加必备的jar包。

在工程目录下新建libs包。里面存放从Android SDK的platform/android-19/目录下获取的两个jar包:android.jar和uiautomator.jar。把这两个jar包丢到libs目录下。并build path 配置好这两个jar包。

编写测试用例类。

我们创建了一个Test类,它继承了UiAutomatorTestCase类。我们在此编写一个测试用例方法。它的作用是按下手机的home键。因为UiAutomator遵循Junit3,所以方法前都要带test。代码如下:

package com.babybus.uiautomator.demo001;import com.android.uiautomator.core.UiDevice;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;public class Test extends UiAutomatorTestCase {public void testPressHomeKey() {UiDevice.getInstance().pressHome();}
}

  

第二步:创建build.xml
在终端执行脚本

在终端输入代码:

android create uitest-project -n [jar name] -t 1 -p[project path]

 

android create uitest-project 表示说要创建一个uitest-project项目
-n 这个项目的名称
-t 需要用到的android SDK的id。我们可以在终端执行android list来查看用的sdk的id编号。如下图:

alt text

-p 工程目录
输入好代码回车,如下图:

会在工程目录下创建build.xml.刷新工程,如图所示:

第三步:修改build.xml

我们把build.xml第二行的help改成build。代码如下:

<project name="BBUIAutomator" default="build">
第四步:编译,生成自动化测试jar包。
编译

执行命令:ant -buildfile [build.xml路径] 或者你也可以cd到工程目录下,执行命令:ant -buildfile build.xml,回车,如下图:

出现BUILD SUCCESSFUL,就表示编译成功了。我们会在bin目录下,发现编译好的jar包。

第五步:push jar包到手机
我们需要把这个生成的自动化测试jar包push到手机的data/local/tmp目录下。

执行命令:

adb push [jar path] /data/local/tmp


终端运行结果如下:

第六步:执行jar包里面的自动测试代码。这里如果正确,应该看到好像有一个隐形人,按下了手机的Home键。

执行命令:

adb shell uiautomator runtest [jar name] -c [类名(完整类名)]

回车,等几秒,你会看到手机好像有个人按了home建,屏幕返回到Home页面。 命令输出结果如下:

 

 

本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 ) 
转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4493142.html

 

转载于:https://www.cnblogs.com/superdo/p/4543069.html

这篇关于[安卓自动化测试] 001.UIAutomator初探的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/714312

相关文章

Python调用LibreOffice处理自动化文档的完整指南

《Python调用LibreOffice处理自动化文档的完整指南》在数字化转型的浪潮中,文档处理自动化已成为提升效率的关键,LibreOffice作为开源办公软件的佼佼者,其命令行功能结合Python... 目录引言一、环境搭建:三步构建自动化基石1. 安装LibreOffice与python2. 验证安装

Spring Boot从main方法到内嵌Tomcat的全过程(自动化流程)

《SpringBoot从main方法到内嵌Tomcat的全过程(自动化流程)》SpringBoot启动始于main方法,创建SpringApplication实例,初始化上下文,准备环境,刷新容器并... 目录1. 入口:main方法2. SpringApplication初始化2.1 构造阶段3. 运行阶

从入门到进阶讲解Python自动化Playwright实战指南

《从入门到进阶讲解Python自动化Playwright实战指南》Playwright是针对Python语言的纯自动化工具,它可以通过单个API自动执行Chromium,Firefox和WebKit... 目录Playwright 简介核心优势安装步骤观点与案例结合Playwright 核心功能从零开始学习

Python自动化批量重命名与整理文件系统

《Python自动化批量重命名与整理文件系统》这篇文章主要为大家详细介绍了如何使用Python实现一个强大的文件批量重命名与整理工具,帮助开发者自动化这一繁琐过程,有需要的小伙伴可以了解下... 目录简介环境准备项目功能概述代码详细解析1. 导入必要的库2. 配置参数设置3. 创建日志系统4. 安全文件名处

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb

Python的端到端测试框架SeleniumBase使用解读

《Python的端到端测试框架SeleniumBase使用解读》:本文主要介绍Python的端到端测试框架SeleniumBase使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录SeleniumBase详细介绍及用法指南什么是 SeleniumBase?SeleniumBase

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.

如何基于Python开发一个微信自动化工具

《如何基于Python开发一个微信自动化工具》在当今数字化办公场景中,自动化工具已成为提升工作效率的利器,本文将深入剖析一个基于Python的微信自动化工具开发全过程,有需要的小伙伴可以了解下... 目录概述功能全景1. 核心功能模块2. 特色功能效果展示1. 主界面概览2. 定时任务配置3. 操作日志演示