APP下载

通用接口自动化测试框架设计与应用

2019-04-26张鲁珊

电子技术与软件工程 2019年6期
关键词:测试报告测试用例用例

文/张鲁珊

科技发展迅速,互联网行业不断壮大,随之软件产品层出不穷,如何保证产品质量,成为非常重要的事情,以OTA 升级云平台为例,软件功能很复杂,测试工作量庞大,除了使用手工测试来验证功能以外,需要通过对大量的接口模拟数据验证,覆盖需求涵盖的所有可能的结果,保证其稳定性。开源测试工具在一定层面上不足以满足我们的测试需求,为方便管理测试用例及数据,我们定义了一套接口自动化测试框架。在人力不足及接口工作量较大的情况下,引入此框架,实现对接口测试用例及数据以及脚本的管理,更好的完成接口测试工作。

1 接口自动化测试框架设计

1.1 环境说明

环境搭建采用如表1所示工具。

1.2 框架说明

根据框架示意图,按照框架层级,逐一做如下阐述:

1.2.1 配置层

配置层主要包括对配置文件信息的初始化设定,包括如下3 方面的配置:

(1)pom.xml 的配置,用于管理maven依赖包,以及同步代码至git 上时的maven 打包配置等。

(2)testng 对应xml 的配置,用于定义需要执行的项目对应的测试类及测试方法。

(3)config 配置,包括对于一些环境信息、接口初始默认参数、数据 库配置信息的维护。

1.2.2 接口层

主要实现对底层代码的封装,包括驱动读取数据方法的实现,基于http 协议接口请求方法的实现,配置文件的读取,结果断言处理,对数据库的读写操作,测试报告的生成,以及接口测试脚本的维护。

1.2.3 测试用例层

测试用例及数据维护在Data ProvidersExcel 中,启动执行代码后,会通过testng 的数据驱动类,逐条读取Excel 中每条用例对应的测试数据,通过调用http 接口发送数据并获取返回结果。

表1

1.2.4 持久层

主要包括3 个方面的数据存储:

(1)DBUtil 管理数据库的连接和操作,保持数据与数据库内容同步。

(2)Redis 作为数据库,在使用过程中,实现数据快速存储且持久化。

(3)每次执行完测试任务后,会生成测试报告存储在target 目录下记录接口测试的执行情况,分为2 个报告形式,1 个为自定义的用例报告为Excel 的形式,1 个为reportNG 框架定义的html 格式报告。

2 接口自动化测试实现

2.1 测试准备

按照接口文档定义的每个接口上送的测试数据,json 格式或xml 格式配置在excel 文档中,并编写对应的接口测试脚本,为测试执行做准备。

2.2 配置管理

实现过程中,为了让一份配置可以在不同代码中被使用,故进行配置数据与代码分离,被测接口在初始化时,通过读取配置文件中配置的请求url,相关的既定参数,载入各项配置信息。

2.3 测试脚本编写

按照实际项目的接口文档,建立与之对应的类与方法,并对每个接口进行拼接上送字段的特殊逻辑处理,以及获取接口返回,对返回数据处理,并调试通过。

2.4 测试执行

通过在testng 对应可执行的xml 中配置需要执行的测试类和方法,运行xml 文件,驱动读取测试方法对应的测试用例数据,拼接成request 请求,模拟客户端发送请求,服务器接收到客户端的请求后,将结果按照一定格式返回,并对比返回结果与用例预期结果,一致则为执行成功,否则为失败,最终将所有用例的测试结果记录在Excel 表格中,结合reportNG生成html 测试报告,显示统计结果:总用例数,通过数,失败数,测试通过率和失败率等。

2.5 jenkins集成

通过jenkins 集成项目,配置好定时任务和邮件,就会在指定时间调用接口自动化测试任务并执行测试用例,最终将测试报告发给特定的收件人。

3 接口自动化测试框架应用

鉴于前期对接口测试的考量,根据项目需要,来搭建的接口自动化测试框架,那值得思考的是,到底在一个项目中,什么时候引入接口测试?前提条件是什么?如何设定接口测试范围?

根据实际项目经验得出,引入接口测试的前提是:接口规范文档的落实,引入接口测试的时机:即文档确立后。测试范围:从功能测试用例中剥离涉及接口部分的用例,结合接口文档,进行分析并设计测试用例。在完成用例中,筛选部分用例,作为后续开发每次发版或改动后的执行用例。

用例完成之后,可以导入测试框架,并配置测试数据,在测试脚本文件中建立项目对应的接口测试类和方法,完成脚本的编写,配置相关请求url 及初始数据,一切准备工作就绪后,通过对特定启动文件的执行,即可完成所有设定接口的执行工作,最终输出测试报告。

4 结论

在实际项目中,软件迭代频繁,回归测试周期短,测试人员精力有限,很难做到在每个迭代周期,对所有功能进行回归验证。接口自动化因其实现简单,成本低,测试点覆盖率高,很受重视。

开源测试工具存在局限性,并不能很好的应对每个项目的测试工作,因此我们基于TESTNG 框架,编写了一套接口自动化测试框架,框架功能比较完善,结构简单清晰,并且将测试数据与代码分离,配置文件数据单独管理,足以应对各种情况的接口自动化测试,只要前期维护好代码和数据,后续会很简单,代码变动量小,只需要对每次的测试数据进行变更。未来还会更深入的研究将测试框架变为可视化的测试工具,达到让不懂代码的测试人员,也能很好的利用工具实现接口自动化测试。

猜你喜欢

测试报告测试用例用例
UML用例间包含关系与泛化关系的比较与分析
UML用例模型中依赖关系的比较与分析
基于SmartUnit的安全通信系统单元测试用例自动生成
联锁软件详细设计的测试需求分析和用例编写
從出土文獻用例看王氏父子校讀古書的得失
基于混合遗传算法的回归测试用例集最小化研究
百变星君:ROLLINGSTONE 变色龙紫破风车架测试报告
SSAB Hardox悍达450材料轻型自卸车厢体测试报告
基于依赖结构的测试用例优先级技术
软件回归测试用例选取方法研究