[安卓自动化测试] 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+FFmpeg实现视频自动化处理的完整指南

《Python+FFmpeg实现视频自动化处理的完整指南》本文总结了一套在Python中使用subprocess.run调用FFmpeg进行视频自动化处理的解决方案,涵盖了跨平台硬件加速、中间素材处理... 目录一、 跨平台硬件加速:统一接口设计1. 核心映射逻辑2. python 实现代码二、 中间素材处

Java使用Spire.Doc for Java实现Word自动化插入图片

《Java使用Spire.DocforJava实现Word自动化插入图片》在日常工作中,Word文档是不可或缺的工具,而图片作为信息传达的重要载体,其在文档中的插入与布局显得尤为关键,下面我们就来... 目录1. Spire.Doc for Java库介绍与安装2. 使用特定的环绕方式插入图片3. 在指定位

CPython与PyPy解释器架构的性能测试结果对比

《CPython与PyPy解释器架构的性能测试结果对比》Python解释器的选择对应用程序性能有着决定性影响,CPython以其稳定性和丰富的生态系统著称;而PyPy作为基于JIT(即时编译)技术的替... 目录引言python解释器架构概述CPython架构解析PyPy架构解析架构对比可视化性能基准测试测

C#借助Spire.XLS for .NET实现Excel工作表自动化样式设置

《C#借助Spire.XLSfor.NET实现Excel工作表自动化样式设置》作为C#开发者,我们经常需要处理Excel文件,本文将深入探讨如何利用C#代码,借助强大的Spire.XLSfor.N... 目录为什么需要自动化工作表样式使用 Spire.XLS for .NET 实现工作表整体样式设置样式配置

C#自动化生成PowerPoint(PPT)演示文稿

《C#自动化生成PowerPoint(PPT)演示文稿》在当今快节奏的商业环境中,演示文稿是信息传递和沟通的关键工具,下面我们就深入探讨如何利用C#和Spire.Presentationfor.NET... 目录环境准备与Spire.Presentation安装核心操作:添加与编辑幻灯片元素添加幻灯片文本操

Python实现Word文档自动化的操作大全(批量生成、模板填充与内容修改)

《Python实现Word文档自动化的操作大全(批量生成、模板填充与内容修改)》在职场中,Word文档是公认的好伙伴,但你有没有被它折磨过?批量生成合同、制作报告以及发放证书/通知等等,这些重复、低效... 目录重复性文档制作,手动填充模板,效率低下还易错1.python-docx入门:Word文档的“瑞士

5 种使用Python自动化处理PDF的实用方法介绍

《5种使用Python自动化处理PDF的实用方法介绍》自动化处理PDF文件已成为减少重复工作、提升工作效率的重要手段,本文将介绍五种实用方法,从内置工具到专业库,帮助你在Python中实现PDF任务... 目录使用内置库(os、subprocess)调用外部工具使用 PyPDF2 进行基本 PDF 操作使用

C#自动化实现检测并删除PDF文件中的空白页面

《C#自动化实现检测并删除PDF文件中的空白页面》PDF文档在日常工作和生活中扮演着重要的角色,本文将深入探讨如何使用C#编程语言,结合强大的PDF处理库,自动化地检测并删除PDF文件中的空白页面,感... 目录理解PDF空白页的定义与挑战引入Spire.PDF for .NET库核心实现:检测并删除空白页

Python实现自动化删除Word文档超链接的实用技巧

《Python实现自动化删除Word文档超链接的实用技巧》在日常工作中,我们经常需要处理各种Word文档,本文将深入探讨如何利用Python,特别是借助一个功能强大的库,高效移除Word文档中的超链接... 目录为什么需要移除Word文档超链接准备工作:环境搭建与库安装核心实现:使用python移除超链接的

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方