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.
发布评论