2024年4月25日发(作者:)

基于Appium的UI自动化测试框架

李思佳;王茜;高筱竹

【摘 要】通过编写自动化测试脚本,利用搭建好的自动化测试框架,对应用进行自动

化测试,并将测试结果反馈给测试人员.研究被测应用程序的UI测试点,进行测试用

例的编写,使得测试用例能够完全覆盖被测应用,通过脚本和用例对一款应用进行自

动化UI测试.

【期刊名称】《科技视界》

【年(卷),期】2018(000)006

【总页数】3页(P141-142,199)

【关键词】Appium;UI自动化测试;Maven;TestNG;数据驱动测试;Jenkins

【作 者】李思佳;王茜;高筱竹

【作者单位】西南科技大学计算机科学与技术学院学院,四川 绵阳 621010;西南科

技大学计算机科学与技术学院学院,四川 绵阳 621010;西南科技大学计算机科学与

技术学院学院,四川 绵阳 621010

【正文语种】中 文

【中图分类】TP311.52

0 引言

如今移动应用是一个很热的话题,一个移动应用离不开好的用户体验,所以UI测

试已经成为移动应用测试的重中之重。 自动化 UI测试创建测试代码来执行测试任

务,各种测试任务覆盖不同的使用场景,然后测试框架来运行测试任务。

Android基于UI层面的自动化测试工具,其主流测试方法主要有以下两种。其一

是Instrumentation,通过把测试代码和应用代码 ,运行在同一个进程中,通过

Java反射机制,来获取当前窗口所有视图,并查找到目标控件的属性信息,计算

出目标控件中心点坐标;再利用Instrument内部接口,实现点击操作;其代表有

Robotium。另一种则是通过Android提供的各种服务,来获取当前窗口的视图

信息;其主要特点是:测试代码和被测应用各自运行在各自的进程内,相互独立;

其代表有 Ui Automator、Appium。

通过Appium搭建的UI自动化测试框架测试应用的范围更加广泛,节约测试时间,

提高测试效率。Appium是一款基于UIAutomator和UIAutomation两者的UI

自动化测试框架,能够实现针对不同平台使用同一套API,带来极大的便利。

1 总体技术方案

1.1 技 术 方 案

针对各种测试框架工具的整合以达到构建完整测试框架的目的。进一步研究被测

APP的UI测试点,进行测试用例的编写,使得测试用例能够完全覆盖被测应用。

达到只通过脚本和用例便能够对一款应用进行自动化UI测试的目的。用到的工具

除了Appium,还有 maven、TestNG、Git、Jenkins。

maven项目对象模型(POM),通过一小段描述信息来管理项目的构建、报告和文

档的软件项目管理工具。由于maven的缺省构建规则有较高的可重用性,所以常

常用两三行 maven构建脚本构建简单的项目。在自动化项目中的使用maven的

主要目的是帮助构建自动化项目(jar包管理,编译,执行测试等),非常方便。

TestNG,即Testing Next Generation,下一代测试技术,是一套根据JUnit和

NUnit思想而构建的利用注释来强化测试功能的一个测试框架,即可以用来做单

元测试,也可以用来做集成测试。

Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的

项目版本管理,并且具有代码托管的功能。

Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作。

具体的设计思路如下图图1所示

图1 设计思路

1.2 技 术 路 线

(1)搭建测试脚本的代码框架

图2 示例代码框架

(2)在服务器上搭建git仓库,并将测试代码提交到服务器。

(3)在服务器上进行相应的环境配置,安装Jenkins,安装邮件通知插件。

(4)整合 git和 Jenkins,使其能够形成一个整体。

(5)进行被测APP的筛选,编写测试脚本,利用测试框架进行测试。

2 关键技术

2.1 环 境 配 置

Java环境

Maven环境配置:将已经下载的 maven完整 jar包版的压缩包进行解压缩操作,

同样放入到Dev目录下。将已经下载好的maven压缩包解压缩并将解压出来的

文件夹放如d盘dev目录下。接下来需要配置下MAVEN_HOME以及 bin目录,

找到Path变量;%MAVEN_HOME%bin

保存之后,打开 CMD,输入 mvn-v,如果返回以下内容,证明maven的环境变

量配置好了:

Appium:将已经下载的maven完整jar包版的压缩包进行解压缩操作,同样放

入到Dev目录下。

·Android SDK

配置ANDROID_HOME

;%ANDROID_HOME%tools

;%ANDROID_HOME%platform-tools

保存之后,打开CMD,输入adb返回以下内容表示环境变量配置完成

2.2 测试应用程序

maven项目的根目录下新建res/app目录,将安卓测试APP放入此目录:

启动Appium Server

启动Appium Server,用于接收和处理来自client的请求。双击已经安装好的

Appium

如果出现:

> info: Welcome to Appium v1.4.16 (REV ae6877eff263066b26328d457

bd285c0cc62430d)

> info:Appium REST http interface listenerstarted on 127.0.0.1:4723

>info:[debug]Non-default server args:{"address":

"127.0.0.1","logNoColors":true,"platformName":

Android","platformVersion":"19","automationName":"Appium"}

> info:Console LogLevel:debug

表明服务启动成功。

鼠标右键执行run as TestNG test,用例就开始执行了

2.3 Appium实现思路框架

Appium遵循着一种哲学,重点体现于以下4个需求:

·你无需为了自动化,而重新编译或者修改你的应用。

·你不必局限于某种语言或者框架或者平台来书写和运行测试代码。

·一个移动自动化的框架不应该在接口上重复造轮子。(移动自动化的接口应该统

一)。

源代码必须开源

第三方框 架封 装成 一 套 API,ver(也就是"Selenium

WebDriver")指定了客户端到服务端的协议(JSON Wire Protocol)。使用这种客

户端-服务端的架构,我们可以使用任何语言来编写客户端,向服务端发送恰当的

HTTP请求。目前已经实现了大多数流行语言版本的客户端,这意味着你可以使用

任何测试套件或者测试框架。客户端库就是简单的HTTP客户,可以以任何你喜

欢的方式潜入你的代码。换句话说,Appium和WebDriver客户端不是技术意义

上的“测试框架”,而是“自动化库”。你可以在你的测试环境中随意使用这些自

动化库!

2.5 数据驱动测试简介

数据驱动测试将测试脚本与测试数据放在同一个测试架构中,该测试架构提供可重

用的测试逻辑,目的是减少测试维护工作量和改善测试覆盖率。测试输入数据和测

试结果数据都会被存储在一个或者 多个数据源、数据库中,数据存储格式和数据

组织方式依赖于具体实现。测试数据与测试逻辑分离,当测试数据发生改变时,不

会影响测试逻辑。同一个测试逻辑可以针对不同数据来进行测试,提高了测试逻辑

的使用效率和可维护性。

3 总结

3.1 项 目 成 果

本项目的主要目标是通过编写自动化测试脚本,利用搭建好的自动化测试框架,对

应用进行自动化测试,并将测试结果反馈给测试人员。由此减少测试工作人员对

UI测试的工作量,提高测试人员的工作效率。

在本项目中的一个重要思想是实现持续集成。UI自动化测试是自动化测试中的一

个重点,也是一个难点,因为一款应用的UI在项目开发阶段时时刻刻都在进行变

化。利用持续集成思想不仅可以很好的应对UI变化,而且有利于团队的分工合作,

提高团队的工作效率。

3.2 后 期 改 进

基于Appium的UI自动化测试框架在实现过程中电脑运行测试代码所需要的环境

问题有待进一步解决,能够成功运行测试框架的电脑只实现了一台,其它会出现意

想不到的问题。目前仅仅实现在控制台输出测试过程以及结果的日志信息,在数据

驱动方面存在的困难是利用excel表格进行存储数据来读取以及将测试结果等信息

输出保存为excel表格或者输出html网页结果,这些还需要进一步研究实现。

3.3 未 来 期 望

希望后续研究人员能实现如何将数据存储于excel表格中被调用实现数据与测试分

离,以及如何将结果存储在excel表格中实现结果清晰明朗化的反馈。

【参考文献】

[1]余盈宽、高守玮、崔徐佳.基于关键字的安卓UI自动化测试的设计[D].工业

控制计算机2015.

[2]徐凯田.UI自动化测试驱动的软件开发方法研究[J].科技视界2015.

[3]陈昊.Android手机自动化测试系统的设计与实现[D].西安电子科技大学

2014.

[4]吕茜.基于 WebDriver和TestNG的网页自动化测试方法[J].软件2016.

[5]陈学亮.基于云的 Andriod应用自动化测试框架研究[J].中国电信股份有限公

司广东研究院2017.

[6]Ashwaq bi、Rizwan ramework for

Automation Testing of Mobile Applications using Appium[J].MECS Press

2017

[7]Pressman E、Huberman ess in plants: effect of

mechanical perturbation and the involvement of ethylene in petiole

pithiness in y DepartmentWake Forest UniversityWinston-

SalemNorth Carolina 1984.