I2021/01|运营一线|Communication&Information Technology
基于关键字驱动的APP
自动化测试方案的研究与实现
袁莺,李成奇,付文豪
(中国移动通信集团广东有限公司东莞分公司,广东东莞523000)
摘要:随着移动互联网的高速发展,移动APP版本迭代更新越来越快,开发人员需在较短的时间内迭代完成多个版本,相应测试工作的强度和时效性也随之提高。软件版本测试因工作量大、低效重复内容多,巳逐渐成为软件产品快速发布的瓶颈。为保证测试的质量,提升测试效率,助力APP快速迭代发布,实现测试工作降本增效,对目前的自动化测试技术进行了研究,以广东移动电渠APP和商汇为例,提出基于关键字驱动的自动化测试方案,并通过RIDE技术实现。
关键词:自动化测试;关键字驱动;RIDE技术
中图分类号:TP391.4文献标识码:A文章编号:1672-0164(2021)01-0022-03
1前言
随着移动互联网的快速发展,手机移动应用已成为人们生活中不可缺少的一部分。为及时满足移动用户的需求,传统瀑布式的开发模式逐渐被迭代敏捷开发所取代,成为目前软件开发过程的主流模型。在迭代开发过程中,开发人员为满足快速发展的业务需求,需要在较短的时间内迭代开发完成多个版本的软件产品。测试人员则需要在此时间内对迭代的软件产品进行有效测试。系统的版本测试是一项工作量大、内容重复多的工作。由于软件产品业务功能本身有较强的依赖性和关联性,在相互迭代之后,使得版本前后关联性更加密切。为保证测试的质量,测试工师必须耗费大量时间和精力去重复对上一个的迭代版本进行回归测试,使得测试工作变得越加繁重,逐渐成为软件产品快速发布的一个瓶颈。为有效的解决瓶颈,自动化测试技《^用到手机移动应用的开发测试领域。
基于Robot Framework框架对android平台下广东移动电渠APP和商汇系统的自动化测试方案进行了研究与实现。通过利用图形界面的编辑器RIDE,编写测试用例,模拟用户的实际操作,完成测试任务。
2现状分析
2.1自动化测试概述
自动化测试是一种测试际通过分析软件产品的业务设计流程,用程序语言按照测试规则编写和蹄测试程序,并在计算机中模拟运行,自动或半自动的ME被测试软件的响应和行为。按照目前自动化测试技术的发展,目前应用较多的两种主流的自动化测试框架分别是基于数据驱动和基于关键字驱动的。
基于数据驱动的自动化测试框架是为了解决当测试数据发生变化时,避免将相应测试脚本一起进行修改和更新,从而提出了将测试数据和脚本分离的方法,即在测试脚本在执冊程中直翩取保存于外部文件测试数据。基于关键字驱动的自动化测试框架在数据驱动的基础上进行改进,此方式不仅将测试数据进行分离,而且将测试的处理逻辑也独立出来。通过将处理测试数据的逻辑统一封装在关键字中,使得测试策略不在测试脚本中,仅体现在测试数据上。
基于数据驱动的自动化测试方案:开发阶段就开始编写测试脚本,测试功能有变化时,需要修改相应的测试脚本。需要对脚本语言非常熟悉。
基于关键字驱动的自动化测试方案:测试工作师可以不用测试脚本语言,而是直接调用由专业人员提前用专业语言写好的业务通用脚本块。
因控制成本等原因,移动公司大部分软件测试执行工作均为外包,无法要求外包人员对脚本足够熟悉,故本方案选择了对测试执行工作技术要求不髙的基于关键字驱动的自动化测试方案。
22
2.2自动化测试框架介绍
Robot Framework 是一款开源的、通用的验收测试和 验收测试驱动开发的自动化测试框架,以简单表
格测试数 据语法形式来使用关键字驱动的测试方法。其测试功能可 以通过python 和java 的测试库进行扩展雪并且使用者可以
使用与创建测试用例类似的语法来创建更高级的关键字。 该框架的主玮点:
•良好的扩展性,测试库可以通过python 、java 实现;•提供较广的关键字库,支持的测试种类多,如
web 测试、移动端(android/ios )、数据库等测试;
•有内置的全局日志管理器,自动生成测试报告。
3基于Robot F ramework 的自动化测试
的实现
以RobotFratnewori 咱动化测试开发框架为基础,通
过导入第三方库selenium 、APPium 的关键字,并用ride 编 辑器来实现按照具体的业务逻辑来编写测试用例脚本。
在APP 、web 端的交互方面,贝闲用APPnium 自动化测试 工具。
3.1 Robot Framework 关键字说明
Robot Framework 的测试用例编写是通过使用关键字 和参数来编写叫关键字主要包含库关键字和用户自定义
的关键字。库关键字是开发者写好的,通过导入库即可使 用,常见的包括selenium 、APPium 等,分别
用于web 和
APP 的自动化测试。如APPium 常用关库关键字包括一些实 用函数的Click Butto (点击按钮)、校验函数Page Should
Contain Element (界面包含某些元素)、等待函数Wait Until Page Contains (界面中包含某些文字后进行下_步) 等。而用户自定义关键字是结合库关键字来创建的更高级
的关键字,可以把一些复杂通用的业务流程,直接定义为 用户关键字叫通常命名可设置描述业务流程的词。相关
的具体用法可参考ROBOT FRAMEWORK 。
图 1 Robot FrameworkiE 架
3.2 Android 界面元素的定位方法
元素定位是自动化测试的第一步,只有定位到正确的 元素,才能进行后续的模拟操作。本文是使用的
androidSDK 自带的元素查看工具一uiautomatorviewer ,通 过工具来查看APPview 上面的元素的属性,辅助我们编写
元素定位相关代码。具体的定位方法包括采用xpath 、id
(resource-id )、class 等旳。如图2所示。
定位下图中“本店商品"的元素为:
破 a th=/ / a tidroid.supportv7.widgetRecyderView/andtoid.
widgetLinearLayout 111
图 2 uiautomatorviewer 工具使用
通信与信息技术2021年第1期(总第24晦)|
23
2021/01运营一线Communication&Information Technology
4移动渠道APP的实现
下面描述移动渠道APP的登录实现过程。
基于ROBOT FRAMEWORK编写完用例后,通过使用开源工具APPium,在测试时,在被测移动终端上启动一个server,监听和解析来自客户端的请求指令。简单来说,APPium是请求端和设备端的交互的统一接口问。此工具主要是传递消息。
移动的电渠APP的登录上述界面,用ROBOT FRAMEWORK的编写的登录渠道APP的代码实现过程如图3。
引入自动化测试相关技术,可以实现将关键的重复测试用例让程序自动验证,有效的避免重复劳动。目
前APP、web的业务主要是涵盖了业务办理、查询等功能,测试的方式都是人工去点击办理和查询,ROBOT FRAMEWORK的架构的第三方库selenium、APPium都已有关键字去模拟类似测试操作。目前通过搭建自动化测试环境,已实现和商汇APP的一些关键测试的操作,自动化程序运行后会生成测试结果报告,测试人员只需关注通过结果即可。在自动化测试完成后,ROBOT FRAMEWORK可以自动生成测试结果报告和测试日志,如图4所示。
通过使用ROBOT FRAMEWORK®架,完成了移动渠道APP的套餐办理、套餐查询等关键用例的自动化测试。传统拨测10分钟例行测试任务,***Settings***
Library APPiumLibraTy
*++Variables+**
it(desired capah ilit ies phone 1pl at f o r m Name=Andr o i d platfaLrinVersion=5_0.2 de vi ceNajiie=e427e439
APPPacka^e=com_asiainfo.A?PAPPActivity=coin.asiainto.dule.lagiZL LoginActivity 耳APP的属性
粋*Test Cases静宰
open APP#打开APP
Qpen APPlictttiCjn http://127.0.0.1;4723/wd/hub&{des i rcd_capalji11tii?s_phane}斗打开应用
Tnptii Tmxt id-com.asiainfo.APP:id/jO S19+***004#输入丁号
Click Element id^com.asiainfo.APP:id/j2甘获取验证码
3曙待3秒
Input Text id-cam.asiainfo.APP:id/jl111111#输入验证码
ClTdk R1emeri t i d=L;om.as i a i rifcj-APP:i<1/1q#点击登录
1og 登录成功
图3ROBOT FRAMEWORK编写的登录渠道APP的代码实现过程
Apptest Test Report
Summary Information
Genereied
20155S.16GMT★购OT
11iararKlz Test statistics
AH p尺第&
2019032915:67:492&7
2GT90329947
UO00:27OSO
log砒袖
汕理
Start Tim#:
End Time:
Elapsed Time:
L%File:
Crificnt Fests
Tbial S[adstic&二Total:
1
Pass Fall谱
10
Elapsed Pass*F^it
5fntistic«by Tag
i
app登录界面Total=
I ij
PftM=FaO i Elap»ad=
Statistics by Suite:T s Poss F U Elap^eci Pass/Fail Appicsl1000W28*
Test Details
SuiiH5Search
RM:Crfdcal Tosu
Ail Teels
图4测试报告
通过自动化拨测28秒即可完成,测试效率大幅提升,且过程无需人工干预,节省人力。
5结束语
本成果的主要效益包括:一是减少人工的重复劳动工作,重复的测试工作内容不必人工每次去测试,只
需通过自动化程序即可。二是是提高工作效率,缩短测试时间。测试场景的脚本一旦完成,可以并行进行业务测试,等程序完成后,关注测试结果即可,可以重点排查测试不通过的用例。三是由于重复工作被程序执行,在目前的人力基础上减少80%以上的测试人力。Q
[2]黎守秀.基于Robot_Framework的自动化测试研究及应用[D].四川成都:西南交通大学,2011.
[3]冯玉才,唐艳.关键字驱动自动化测试的原理和实现[J].计算机应用,2004,24(8):140-142.
[4]祝阳阳,侯永宏.Android自动化测试工具Robotium的应用与研究[J].信息技术,2015(10):198- 200,205.
[5]谢红霞,吴红梅.基于Android的自动化测试的设计与实现[J]•计算机时代,2012(2):20-22.
作者简介
袁莺(1983—),男,髙级工程师,硕士研究生,主要研究方向为客户运营及数据分析。
参考文献
[1]侯菊敏.基于Android的关键字驱动自动化测试框架研究[D].广东广州:中山大学,2012.
李成奇(1982—),男,高级工程师,硕士研究生,主要研究方向为业务支撑和经营分析。
付文豪(1987—),男,中级工程师,硕士研究生,主要研究方向为客户运营及数据分析。
24
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论