基于Postman+Newman的接口业务自动化测试应用

2024-09-19 00:00:00刘小玲殷珊珊李慧云郝颖许杰辉
现代信息科技 2024年13期

摘 要:电商系统作为公司所有产品的关键业务支撑,由于业务更新和发展需要,提测频率大幅增加,然而,回归测试受业务场景复杂性和测试周期限制,导致人工测试无法充分覆盖业务场景,可能会引发问题。为解决上述问题,文章选用Postman和Newman工具,结合电商系统实际业务特点,设计出一套测试用例,通过数据参数关联技术实现电商系统接口业务场景自动化测试。自动化测试提高了回归测试效率,节省了测试成本,同时提升了系统质量。

关键词:接口自动化测试;自动化测试;接口测试;业务场景测试

中图分类号:TP311 文献标识码:A 文章编号:2096-4706(2024)13-0056-05

Application of Interface Business Automatic Testing Based on Postman+Newman

LIU Xiaoling, YIN Shanshan, LI Huiyun, HAO Ying, XU Jiehui

(Tongfang Knowledge Network Digital Publishing Technology Co., Ltd., Beijing 100192, China)

Abstract: As a key business support for all products of the company, the E-commerce system has been found a significant increase in testing frequency due to business updates and development promotions. However, regression testing is limited by the complexity of business scenarios and testing cycles, resulting in manual testing not being able to fully cover business scenarios, which may lead to problems. Based on this, by selecting Postman and Newman tools and combining them with the actual business characteristics of E-commerce systems, a set of test cases is designed, and data parameter correlation technology is used to achieve automatic testing of E-commerce system interface business scenarios. Through automatic testing, regression testing efficiency is improved, testing costs is saved, and system quality is improved.

Keywords: interface automation testing; automatic testing; interface testing; business scenario testing

0 引 言

随着公司业务的快速发展,作为公司关键业务支撑服务的电商系统,为公司所有产品提供着重要的业务支撑。然而,由于业务更新和发展的需求[1],电商系统的测试频率大幅增加,每次测试不仅要测试新功能新业务,还要确保已有业务的正确和稳定。由于业务场景的复杂性以及测试周期的限制,人工测试无法充分覆盖所有场景,因此难以保证电商系统的质量。

为解决上述问题,我们根据公司电商系统业务特点,提出了接口业务场景自动化测试方案及应用,通过引入接口自动化测试技术[2]来提高测试效率、改善测试质量、增强回归测试能力。Postman是一款功能强大的接口测试工具,通过接口关联[3]实现复杂的业务场景的组合测试和自动化测试。本文主要介绍基于Postman+Newman的自动化测试应用,并结合实际案例来阐述测试过程及效果。因此,本文将重点介绍如何使用Postman+Newman进行自动化测试以及在实践中的应用效果。

1 Postman+Newman功能简介

Postman是一个功能强大的网页调试工具的客户端[4],它为用户提供了出色的Web接口和HTTP请求调试功能,具有请求集管理、环境配置、参数化、断言、批量执行等功能,凭借其能够发送任何类型的HTTP请求(GET、HEAD、POST、PUT等)以及附带任何数量的参数和headers的特点,Postman成为一款非常实用的测试工具。

Postman Newman是一个强大的命令行工具,允许用户直接从命令行运行Postman集合,可以将测试结果输出为多种格式的报告,如JOSN、HTML等,为开发人员和测试人员提供方便的问题定位和分析工具。

1.1 创建项目请求集

在Postman中,集合(Collections)类似文件夹,Collection里面还可以再建子文件夹目录,可以把同一个项目的请求放在一个Collections里进行管理和分享。通过Collections创建项目请求集,然后添加请求即创建接口测试用例,根据接口文档选择请求方式、请求url、请求头、请求体,请求内容无误后执行测试用例,在响应区查看响应结果。

1.2 设置环境配置

Postman提供环境变量和全局变量来存储和管理数据,以便在多个请求之间共享和重复使用数据。环境变量是针对特定环境的变量(比如测试环境、开发环境、灰度环境、生产环境),环境变量可以存储接口的URL、Token_id等公共信息,以便在特定环境下的多个请求中共用。全局变量是定义在全局中的变量,可以存储全局信息,比如用户名、密码等,在所有环境下的所有请求中使用。

1.3 参数化

在自动化迭代的测试过程中,数据参数化是Postman比较重要的特征之一,它能够将变量进行参数化,从而避免重复相同的测试。Postman参数化的形式主要有三种:内置变量、Pre-request-Script页签中使用脚本代码、外部文件引用。内置变量是Postman自带的系统变量,常使用在Request里。比较推荐Pre-request-Script页签内使用代码实现参数的方法,在执行接口测试用例时会先执行Pre-request-Script页签内的代码,然后再发送请求。外部文件引用是指通过csv文件或者json格式的文件实现参数化,csv的运用需要先通过设置字段,多个关键字之间需要用英文逗号隔开,第一行写定义的参数变量,文件保存为.csv格式,csv文件比较常用。

1.4 编写断言校验

Postman的Test模块可实现请求断言,断言模块是自动化测试中比较重要的一部分。一个完整的接口测试,包括请求、响应、断言,断言[5]通过JavaScript语言编写,在Tests下方系统会提供部分断言内容,断言结果是在请求返回之后显示,并根据断言返回结果的PASS和FAIL状态体现在最终的测试结果中。断言的主要作用是将实际结果和预期结果的对比,如果测试返回结果一致,则测试用例通过;如果测试返回结果不一致,则断言失败,即测试用例执行失败。

1.5 批量执行

Postman提供Run功能实现批量运行,首先点击要批量运行的项目请求集文件,然后点击Run按钮,系统默认全选,可勾选需要运行的请求,进行设置重复次数和运行间隔,最后点击“Run接口—请求集名称”即可批量运行测试用例。

Postman通过与Newman结合也可以实现批量运行接口达到接口自动化测试的目的,当对大量的接口进行自动化测试时,比较推荐使用Newman进行批量运行,使用Newman可以测试接口的功能、性能、可靠性和安全性,测试结果支持输出多种格式的报告,比如HTML、JSON等,以方便开发人员进行问题定位和分析。

2 测试项目

选用Postman+Newman作为测试工具,按照测试流程[6]:测试需求分析、测试方案设计、测试用例执行及测试报告,对电商系统接口进行接口业务场景自动化测试。

2.1 测试内容

根据对公司电商系统在实际应用中的特点,分析出常用用户使用的业务场景,包括测试用户登录、检索、获取产品权限和价格、浏览和下载,其中用户类型包含计费账号、包库账号以及两种账号的不同绑定关系,产品权限包含有权限、无权限、继承权限、资源包权限、漫游和并发,下载量限制和余额判断等核心业务,其中下载限制包含我的账户系统下组限制和电商管理平台下设置的下载限制。根据这些功能业务进行设计接口业务测试用例,对每个业务场景的响应结果测试分析,并通过参数化关联、断言实现接口测试用例可复用,从而实现快速回归测试。

2.2 测试方案设计

分析公司底层电商系统基础功能和核心业务,具有基础需求变更不频繁,研发和维护周期长,且需要重复运行相同业务场景的特点。选用了Postman接口测试工具进行单接口测试,并根据系统中每个业务特征将多个单接口组建成日常用户使用的业务场景,通过上下接口数据关联实现了业务场景用例的复用性[7]。电商系统的每个业务均涉及5个接口,为了便于快速问题定位,确保测试用例的有效性,在设计多个业务用例场景时应保证不同的业务场景之间相互独立,互不影响。

基本设计方案为:

1)按照业务大模块创建项目(文件夹),包含4个部分:核心业务验证(包含权限、漫游、并发)、下载限制(电商管理平台)、下载限制(我的账户组内管理)和产品下载限制(电商管理平台)。

2)每个大业务(文件夹)下继续创建子业务(子文件夹),根据实际业务情况决定子业务深度,如核心业务验证(包含权限、漫游、并发)大业务包含3个子业务:产品下载权限限制、IP范围限制可漫游下载和并发限制。

3)在子业务文件下根据账号类型创建对应的业务,比如计费账号核心业务,包含业务场景有计费账号余额不足、余额充足扣费下载、免费下载单篇免费文献、使用包次卡次下载等业务。

4)最底层的项目(文件夹)内编写接口的业务请求,涉及5个接口:登录、检索、获取产品权限和价格、浏览和下载。

5)运行分析测试结果。

2.3 测试用例设计

根据接口文档以及测试方案设计测试套件,在设计接口测试用例时,不但要包含覆盖业务逻辑的正例测试,还要设计异常场景测试以及触发接口功能错误的场景[8]。电商系统接口的请求响应格式均为JSON格式,以其中一个正向业务场景为例,涉及5个接口:登录—获取产品购买方式—查询文献扣费信息—下载—退出,首先需要根据测试要求选择满足一定策略的测试数据[9],创建登录请求,通过pm.environment.set函数获取请求返回jsonData.IdenId到变量中,在下一接口中引用此变量,应用实例如图1所示。

在最底层的文件夹下创建业务测试用例之后,对返回结果分析并在Tests标签下编写断言,通过设置变量实现接口上下关联,如图2所示。后面的接口获取前面接口返回的数据作为入参,格式如图3所示。

通过此方法实现后面3个接口的关联后,运行业务场景,先选中最底层文件夹(case01开头的文件夹),然后点击Run按钮,可实现这组用例集的批量运行,运行结果如图4所示。

2.4 测试报告

按照以上测试过程对原有的XLS表格内人工执行的核心业务测试用例,全部通过Postman工具完成自动化测试,并调试通过后将自动化测试脚本导出为JSON格式文件,使用Newman从命令行运行Postman集合:“newman run collections.json -r html,cli”,运行完成后,可自动生成HTML格式的测试报告。本次测试涉及4大业务模块,创建4个文件夹,以其中2个业务Yx0bTh9gW4dxd1hbYF06C+hmaWFNHp6xrC83ctVt4sc=的运行情况为例,查看导HTML格式的测试报告,分别如图5、图6所示。

3 测试效果分析

根据电商系统业务场景用例设计方案分为4大文件夹,从以上2个测试报告截图中可以分析出Requests是11 843个,一个业务场景包含5个请求(登录、检索、获取产品权限和价格、浏览和下载),共覆盖2 368个不同的业务场景,运行完成时间是0.5小时,平时人工执行XLS表内的相同数量的业务场景用例,需要5人日合计40小时完成。自动化测试执行速度是人工测试的80倍。对于多次需要回归的情况[10],随着业务场景数量的增加,产生的效益也会越大。

4 结 论

通过使用Postman和newman对电商系统的接口进行测试分析,结合电商系统的实际业务特点,设计接口业务测试用例,并通过数据参数关联技术完成了测试用例集的可复用,从而实现了电商系统接口业务场景自动化测试。通过测试数据分析,自动化测试提高了回归测试效率,节省了测试成本,同时提高了产品质量。因此,企业应根据产品业务特点选择适当的自动化测试手段,以提高回归测试效率和提升生产力。

参考文献:

[1] 张清睿,黄松,孙乐乐.Web功能自动化测试综述 [J].软件导刊,2023,22(3):227-236.

[2] 黄志辉,蔡杰峰,蔡汉钓.接口自动化测试的应用实践 [J].广播电视网络,2023,30(7):103-105.

[3] 周燕,肖玉,许华.基于JMeter接口关联技术研究 [J].信息技术与信息化,2023(3):160-163.

[4] STORM.接口自动化测试持续集成 [M].北京:人民邮电出版社,2019.

[5] 许礼捷,葛华.基于Selenium的Web自动化测试研究与实践 [J].沙洲职业工学院学报,2022,25(4):1-6.

[6] 仇振安,王锋,任志伟.软件测试的难点及应对策略 [J].电光与控制,2023,30(9):106-111.

[7] 李昊,柳溪.基于知识图谱的雷达软件测试用例复用研究 [J].测控技术,2021,40(6):18-26.

[8] 谈丽君.基于Robot Framework的API接口自动化测试系统的设计与实现 [D].上海:华东师范大学,2022.

[9] 姚香娟,田甜,党向盈,等.智能优化在软件测试中的应用综述 [J].控制与决策,2022,37(2):257-266.

[10] 郭贝贝.基于Selenium的自动化测试平台的设计与实现 [D].西安:西安电子科技大学;2022.

作者简介:刘小玲(1980.08—),女,汉族,江苏徐州人,高级工程师,本科,研究方向:软件测试管理。