您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页基于Robot Framework的自动化接口测试框架的设计与实现

基于Robot Framework的自动化接口测试框架的设计与实现

来源:意榕旅游网
基于RobotFramework的自动化接口测试框架的设计与实现DesignandImplementationofAutomatedInterfaceTestingFrameworkBasedonRobotFramework杨欣,朱志东,高远(中国电子科技集团公司第二十八研究所,江苏南京210007)YangXin,ZhuZhi-dong,GaoYuan(The28thResearchInstituteofChinaElectronicsTechnolo-gyGroupCorporation,JiangsuNanjing210007)该方法摘要:目前国产软件的接口测试主要采用的是通过使用串口或网口报文收发工具进行测试的方法。这大大地增加了测试的时间通常需要人工发送报文,并逐个字节比对接收到的报文和接口协议的一致性,该文提出了一种基于RobotFramework的自动化接口测试框架,可自动进行接口和人力成本。针对该问题,并结合具体的应用实例验证该测试框架测试的各项操作。文章详细介绍了该框架的设计原理和实现过程,的可行性。使用该测试框架可提高测试效率、降低测试成本。软件测试关键词:RobotFramework;自动化测试;接口测试框架;中图分类号:TP311.52;TB114.2文献标识码:A文章编号:1003-0107(2018)10-0040-06Abstract:Theinterfacetestingofsoftwareismainlycarriedoutbyusingserialportornetworkportmessagingtool.Thismethodusuallyrequiressendingmessagemanuallyandcomparingtheconsistencyofreceivedmessageandinterfaceprotocolsbytebybyte,whichgreatlyincreasesthetestingtimeandlaborcosts.Inordertosolvethisproblem,thispaperpresentsanautomatedinterfacetestingframeworkbasedonRobotFrame-work,whichcanperforminterfacetestingautomatically.Thispaperintroducesthedesignprincipleandimple-mentationprocessoftheframeworkindetail,andverifiesthefeasibilityofthetestingframeworkwithspecificapplicationexamples.Thetestingframeworkcanimprovetestingefficiencyandreducetestingcost.Keywords:RobotFramework;automatedtesting;interfacetestingframework;softwaretestingCLCnumber:TP311.52;TB114.2Documentcode:AArticleID:1003-0107(2018)10-0040-060引言随着国防科技和软件技术的不断进步,国产软件的规模越来越大,系统越来越复杂。软件各配置项之间的通信多依赖于系统间各接口实现,接口协议实现的正确与否直接关系到整个软件系统运行的稳定性和可靠性。它将直接导致系接口问题不同于界面或其它类型问题,统功能错误,安全隐患不容忽视[1]。依据软件测试过程和技术能力中对接口测试的相测试所关要求,接口测试主要需要进行以下几点测试:对每一个外有外部接口,检查接口信息的格式及内容;部输入/输出接口必须要做正常和异常情况的测试。目前国产软件的接口测试主要采用的是通过使用串口或该方法通常需要根网口报文收发工具进行测试的方法。作者简介院杨欣(1985-),主要从事软件测试工作;女,工程师,硕士研究生,主要从事软件测试工作;朱志东(1990-),男,工程师,硕士研究生,主要从事软件测试工作。高远(1980-),男,高级工程师,硕士研究生,并覆盖报据接口协议的内容来模拟各种接口测试数据,同文指令的各个字节,这必然导致用例数量急剧增加;这时还需人工逐个字节比对接收到的数据和接口协议,也增加了测试的时间和人力成本[2]。使用人工方式进行测试效率低。为接口测试,过程繁琐复杂,测试周期长,本文提出了基于RobotFrame-了改进接口测试的效率,work的软件自动化接口测试框架。1RobotFrameworkRobotFramework是一个基于Python编写的自动化功能全面,可测试平台,支持数据驱动、关键字驱动等,复杂应用测试等多种测试用于分布式测试、接口测试、场景。RobotFramework易于扩展,用户可以使用Python40电子质量2018年第10期(总第379期)和Java创建自己需要的测试库;易于集成,提供了命令行接口和XML格式的输出;可以利用\"标签\"功能对测试用例进行分类和有选择执行;提供HTML格式的结易于阅读[3]。果报告和日志,基于RobotFramework开发的测试框架具备复用度在关键字驱动模式下,可以利用高,维护成本低等优点。低层关键字创建高层关键字,关键字于业务数据,业务数据可存储于测试数据文本中[4]。关键字和业务数据结合形成测试用例,执行测试用例得到测试结果。测试框架结构图如图1所示。基础层提供了Python、Selenium2、RobotFramework等基础函数库,在此基础上的类库层引入第三方类库为测试框架提供低层关键字。关键字层根据被测系统的业务逻辑特性,通过低层关键字创建高层关键字,每个关键字封装相关的业务操作。从而实现测试脚本与测业务操作与业务数据开来,试数据相分离。用例层是各个高层关键字的逻辑组合,不同的测试用例对关键字传入业务数据形成测试用例。可以复用相同的关键字,需要改变的只有传入的业务数据,方便维护和修改。图1测试框架结构图2设计思路与实现目前软件的接口测试流程如图2所示。通过使用相应的接口测试工具来模拟发送正常、异常的测试数据,对接收到的被测软件应答报文与接口协议进行比对,由人工手动进行测试,来判断接口协议实现的正确性。易出错,且可重复性逐个输入测试数据,测试效率低、和可追溯性差。针对当前接口测试方法的不足,结合RobotFramework的特点,设计一个适合的自动化接口测试框架。图2人工接口测试流程图提取业务操作。主首先根据接口测试的业务逻辑,对指令参数添加报头、报要的操作有:读取指令参数;尾、校验位等生成指令报文;向被测软件发送指令报文;读取被测软件的应答报文;应答报文与协议比对。其次最后将关键字组合成测将每个业务操作封装成关键字。试用例。自动化接口测试流程图如图3所示。41根据软件接口的操作流程,先进在测试设计阶段,形成测试脚本。结合行关键字的封装,在测试执行阶段,指令参数,执行测试脚本自动进行接口测试。后续进行回归测试时,前期设计的自动化测试框架无需变动或变即可自动完动很小,不用再进行其它繁琐的人工操作,成接口测试。测试人员可以将这对于一些常用的接口测试操作,形成自己的测试库,些操作封装成特定的关键字,对于不同的软件系统可直接使用或只进行较小的变动,大大地降低测试成本。自动化接口测试框架具体实现如下。2.1读取指令参数即通过操作数据文件,RobotFramework的数据驱动,实现测试数据与测试脚本的分离。通过引入Excel-Library,实现对Excel文件进行读取和保存操作。将指令参数存于Excel文件中,由程序自动读取文件中指令参数传入测试用例进行测试,Excel文件数据如图4所示。图3自动化接口测试流程图图4Excel文件数据语句设计如下:OpenExcel${filename}#打开Excel文件@{test_data}=GetColumnValuessheet11指令参数@{answer_data}=GetColumnValuessheet12#读取正确应答参数2.2生成指令报文报尾和CRC校验,生成对指令参数自动添加报头、完整的指令报文。通过RobotFramework内置的关键字,结合业务实际,编写业务关键字\"CRCGeneration\"、\"CRCGeneration-err\"、\"AddHeadandTail\"、\"AddHead-err\"、\"AddTail-err\"、\"InstructionGeneration\"等。语句设计如下:CRCGeneration${test_data[1]}[1]例的指令参数添加CRC校验码AddHeadandTail${test_data[1]}[1]#对test001用例的指令参数添加报头、报尾CRCGeneration-err${test_data[1]}[1]#对test001#对test001用#读取用例的指令参数添加错误的CRC校验码(用于异常测试)AddHead-err${test_data[1]}[1]#对test001用例的指令参数添加错误的报头(用于异常测试)AddTail-err${test_data[1]}[1]#对test001用例的指令参数添加错误的报尾(用于异常测试)InstructionGeneration${test_data[1]}[1]#生成test001用例的测试指令报文2.3发送指令报文AutoIt软件能通过模拟键盘操作、鼠标移动和点击、窗口和控件的组合动作,来实现自动化完成批量任务。AutoItLibrary是基于AutoIt软件针对于RobotFramework可对接口测试工具进行自动化操作。开发的一个测试库,使用AutoItLibrary的关键字ControlClick、WinWaitActive、Run和Send等进行发送指令报文操作,编写业务关键字\"RunTool\"、\"SetText\"、\"SendInstruction\"。语句设计如下:RunTool#启动测试工具SetText@{instruction_data}#将待发送test001用例42电子质量2018年第10期(总第379期)的指令报文自动写入测试工具发送区SendInstruction#发送指令报文2.4读取应答报文使用AutoItLibrary的关键字ControlListView等进编写业务关键字\"Get行读取被测软件发送的应答报文,Instruction\"。语句设计如下:${ack_data}=GetInstruction被测软件发送的应答报文2.5比对应答报文将读取到的应答报文${ack_data}与正确的应答报验证被测软件接口功文@{answer_data[1]}[1]进行比对,能的正确性。编写业务关键字\"CheckInstruction\"。字节数 报文格式 字节数 报文格式 1 报头 1 报头 3 CO (CO1、CO2、CO3) 3 ST (ST1、ST2、ST3) 语句设计如下:CheckInstruction${ack_data}@{answer_data[1]}[1]#比对test001用例的应答报文的正确性3实例应用其主要功能是:某被测软件与控制台进行接口通信,并按要求回复接收应被测软件接收控制台发出的指令,即上位机(控制答和响应结果。数据的传送为双向进行,下位机(被测软件)回复确认接收应台)发送控制指令时,下位机(被测软件)答;上位机(控制台)发送查询指令时,回复确认接收应答并回送所查询的结果。被测软件与控制台的通信报文分为指令报文和应答报文。被测软件与控制台之间的通信协议如表1所示。#从测试工具中读取表1被测软件与控制台的通信协议指令 报文 2 CP (CP1、CP2) 2 SP (SP1、SP2) 2 CRC校验 2 CRC校验 1 报尾 1 报尾 应答 报文 CO为指令码,共3个字节;共2其中,ST为应答码,个字节;CP为命令参数;SP为应答参数。报文采用16进制数。通信由控制台发起,被测软件响应命令。当被测软回复接收正确的应答报文件接收到正确的指令报文时,报尾错、;当被测软件接收到CRC校验错误、报头错、参回复报文错误的应数错的指令报文时,不执行该命令,采用等价类划分法、边界值答报文。根据接口测试需求,测试数据如图5所示。分析等测试方法设计测试数据,图5测试数据得执行测试脚本,依次执行该脚本下的所有用例,测试到测试结果、并生成的测试报告和测试日志文件,脚本执行情况如图6所示。图7所示的report是本次批量执行测试用例的整测试用例总数,体情况,记录了测试结果、通过用例总数图8所和未通过用例总数以及执行全部用例的总耗时。示的log是本次批量执行测试用例的具体情况,包括每个用例的执行结果、耗时情况和每个用例步骤的执行情况。43图6测试结果图7测试报告44电子质量2018年第10期(总第379期)图8测试日志4结束语本文研究了基于RobotFramework的软件自动化接进口测试框架,并以某软件与控制台的通信接口为例,行了框架的实现和适用性验证。该框架在RobotFramework平台上主要通过引入ExcelLibrary和AutoIt-Library进行脚本开发,减少了重复性的人工操作,大大在短时节省了人力成本,能够适应各种接口测试工具,异常的测试数据,间内尽可能多地测试各种正常、提高了测试效率。[1]刘春裕.基于VBA开发技术的接口测试技术研究[J].计算机技术与发展,2014,24(1):69-72,76.[2]高湘飞,赵星汉,张倩倩,等.基于XML的可配置接口测试工具设计与实现[J].指挥信息系统与技术,2015,6(6):28-32.[3]齐涛.RobotFramework自动化测试宝典[M].北京:电子工业出版社,2015:179-1.[4]张晨,姚莉.基于RF的自动化测试脚本设计与应用[J].电子技术与软件工程,2014,(1):103-104.参考文献:45

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务