当前位置: 首页 > 测试知识 > 基于Postman+Newman的接口自动化测试工程化实践
基于Postman+Newman的接口自动化测试工程化实践
2026-08-07 作者cwb 浏览次数98

Postman+Newman的接口自动化测试是设计-执行-反馈的流程。Postman在用例设计上的易用性和Newman在命令行执行、不断集成上的强大能力。


第一步:环境搭建

先需要安装必要的工具:

安装 Node.js 和 npm:Newman 依赖 Node.js 环境,请从 Node.js 官网 下载 LTS 版本并安装。

安装 Newman:通过 npm 全局安装 Newman。


bash

npm install -g newman


可选安装 HTML 报告插件:为了生成更直观的 HTML 测试报告。


bash

npm install -g newman-reporter-html


测试安装:运行以下命令,如果显示版本号则说明安装成功。


bash

newman -v

第二步:设计Postman测试用例 

组织测试集合 (Collection):按功能模块(如用户管理、订单系统)划分Collection,内部可用Folder区分正向/反向用例。

编写请求和断言:在请求的 Tests标签页中使用JavaScript编写断言。

状态码断言:pm.test("Status code is 200", function() { pm.response.to.have.status(200); });

响应体断言:pm.test("Response contains access_token", function() { var jsonData = pm.response.json(); pm.expect(jsonData).to.have.property('access_token'); });

响应时间断言:pm.test("Response time is less than 200ms", function() { pm.expect(pm.response.responseTime).to.be.below(200); });

管理环境变量:通过环境变量(如 {{base_url}})管理不同环境(开发/测试/生产)的配置。

实现数据驱动:将测试数据外部化为CSV或JSON文件,在Collection Runner或Newman中导入,实现同一套脚本多组数据测试。

完成设计后,将 Collection 和环境变量导出为JSON文件,这是Newman执行的输入。


第三步:Newman自动化执行 

通过 Newman 命令,可以在命令行中运行测试。

基础运行:newman run <集合文件途径>.json

指定环境:newman run <集合文件途径>.json -e <环境文件途径>.json

数据驱动:newman run <集合文件途径>.json -d <数据文件途径>.csv

生成 HTML 报告:newman run <集合文件途径>.json -r html --reporter-html-export <报告输出途径>.html


组合命令示例:


bash

newman run order_api.json -e test_env.json -d order_data.csv -r htmlextra,junit --reporter-htmlextra-export report.html --bail


第四步:Jenkins, GitLab CI, GitHub Actions的CI/CD 集成

将Newman命令集成到CI/CD流水线中。

Jenkins:在 Jenkins 任务中,添加一个执行 Shell 脚本的创建步骤,运行 Newman 命令。还可通过 --reporters junit生成 JUnit格式报告,供Jenkins插件分析和展示。

GitLab CI:在 .gitlab-ci.yml 文件中定义测试 job,安装 Newman 并执行。

GitHub Actions:在 .github/workflows/*.yml 文件中定义 workflow,安装 Newman 并执行。

CI流程一般配置为在代码提交时自动触发,一旦测试失败,即可阻断部署,保证质量门禁。


第五步:报告和通知

测试报告:Newman 支持生成 HTML、JSON、JUnit XML 等多种格式的报告。

可视化和通知:JSON 格式报告可用于数据可视化。同时,可配置当监控的重点接口异常时,通过 Slack、邮件 等方式发送告警通知。


实践

代码化和版本控制:将 Postman 导出的 JSON 文件(Collection、Environment)和测试数据文件(CSV/JSON)一同提交至 Git 仓库,实现版本管理。

测试分层和聚焦:按功能模块组织 Collection,每个测试脚本只测试一个具体行为。

参数化和数据驱动:尽量避免硬编码,利用环境变量和数据文件提高脚本的可维护性和复用性。

完善的断言:除了状态码,应对重点业务字段、响应结构、响应时间等进行全面断言。

错误处理和调试:利用 --bail 参数在首个失败用例时结束执行,快速定位问题。

独立的环境:为开发、测试、生产等环境维护独立的 Environment 文件。

集成质量门禁:在CI管道中,将测试结果作为部署的前提条件。


文章标签: 接口性能测试 自动化测试 软件测试 测试工具
咨询软件测试