使用 newman 命令,运行导出的测试集脚本,打开 cmd 输入:
cmd
newman run 测试脚本文件 -e 环境变量文件 -d 测试数据文件 -r html --reporter-html-export report.html
- run xxx.json:表示要执行的 postman 脚本,即导出的测试集数据
- -e source:用来指定环境变量文件的路径
- -d source:用来指定测试数据文件的路径
Newman 插件使用笔记
Newman 是 Postman 的命令行运行工具,可将 Postman 中创建的测试集(Collection)脱离图形界面执行,支持批量运行、数据驱动测试及生成可视化报告,常用于接口自动化测试、CI/CD 集成等场景。
一、前置准备:安装 Newman
Newman 基于 Node.js 开发,需先安装 Node.js(建议 v14+ 版本),再通过 npm 安装 Newman。
1. 验证 Node.js 环境
打开 CMD 或终端,输入以下命令,若能显示版本号则说明 Node.js 已安装成功:
cmd
node -v # 查看 Node.js 版本
npm -v # 查看 npm 包管理器版本
2. 安装 Newman
在 CMD/终端中执行以下命令,全局安装 Newman:
cmd
npm install -g newman
3. 验证 Newman 安装
安装完成后,输入以下命令,显示版本号即安装成功:
cmd
newman -v
二、核心命令:运行 Postman 测试集
1. 基础命令格式
cmd
newman run <测试集文件> [选项参数]
2. 完整命令示例(含常用参数)
cmd
newman run 测试集文件.json -e 环境变量文件.json -d 测试数据文件.csv -r html,junit --reporter-html-export 报告输出路径/report.html --reporter-junit-export 报告输出路径/junit.xml
三、关键参数详解
参数 | 作用说明 | 示例 |
---|---|---|
run <文件> |
核心指令,指定要执行的 Postman 测试集文件(需导出为 JSON 格式) | run api_test_collection.json |
-e <文件> |
指定环境变量文件(Postman 中导出的环境 JSON,含域名、Token 等环境变量) | -e dev_env.json |
-d <文件> |
指定测试数据文件(支持 CSV/JSON 格式,用于数据驱动测试,如多组入参) | -d test_data.csv |
-r <报告类型> |
启用报告生成,支持多种类型(如 html、junit、json、cli),多类型用逗号分隔 | -r html,junit |
--reporter-html-export <路径> |
指定 HTML 报告的输出路径及文件名(若不指定,默认生成在当前目录) | --reporter-html-export ./report/202405_test.html |
--reporter-junit-export <路径> |
指定 JUnit 报告路径(用于 Jenkins 等 CI 工具集成) | --reporter-junit-export ./report/junit.xml |
-n <次数> |
指定测试集的运行次数(用于压力测试基础场景) | -n 10 (运行 10 次) |
-k |
忽略 SSL 证书验证(测试环境中接口若为 HTTPS 且证书无效时使用) | newman run test.json -k |
四、文件准备:Postman 导出必要文件
需从 Postman 中导出 3 类核心文件(根据测试需求选择,非全部必选):
-
测试集文件(Collection)
- 路径:Postman 左侧「Collections」→ 选中目标测试集 → 右键「Export」→ 选择「Collection v2.1」格式 → 保存为 JSON 文件(如
api_collection.json
)。 - 作用:包含所有接口请求、断言脚本、前置脚本等核心测试逻辑。
- 路径:Postman 左侧「Collections」→ 选中目标测试集 → 右键「Export」→ 选择「Collection v2.1」格式 → 保存为 JSON 文件(如
-
环境变量文件(Environment)
- 路径:Postman 左侧「Environments」→ 选中目标环境 → 右键「Export」→ 保存为 JSON 文件(如
dev_env.json
)。 - 作用:存储环境相关变量(如
{``{baseUrl}}
、{``{token}}
),切换环境时只需更换该文件,无需修改测试集。
- 路径:Postman 左侧「Environments」→ 选中目标环境 → 右键「Export」→ 保存为 JSON 文件(如
-
测试数据文件(Data File)
-
格式:支持 CSV 或 JSON(CSV 更易维护多组数据)。
-
示例(CSV 格式):
username password expected_code test1 123456 200 test2 wrongpwd 401 -
作用:通过
-d
参数引用,实现"一套脚本跑多组数据"的数据驱动测试 ,脚本中通过data.username
引用数据。
-
五、实战案例:完整流程演示
以"测试登录接口"为例,完整步骤如下:
1. 准备文件
- 测试集文件:
login_collection.json
(含登录接口请求、断言"响应码为 200")。 - 环境变量文件:
dev_env.json
(含{``{baseUrl}} = http://test-api.com
)。 - 测试数据文件:
login_data.csv
(2 组测试数据:正确账号、错误账号)。
2. 执行命令
打开 CMD,进入文件所在目录(如 cd D:\api_test
),执行命令:
cmd
newman run login_collection.json -e dev_env.json -d login_data.csv -r html --reporter-html-export ./login_report.html -k
3. 查看结果
- 执行过程:CMD 中会实时显示每个接口的请求状态、断言结果(绿色
PASS
为通过,红色FAIL
为失败)。 - 报告查看:执行完成后,在指定路径(如
D:\api_test
)找到login_report.html
,用浏览器打开即可查看可视化报告,包含接口详情、断言结果、响应时间等信息。
六、常见问题与解决方案
问题现象 | 可能原因 | 解决方案 |
---|---|---|
提示"newman 不是内部或外部命令" | Node.js 环境变量未配置,或 Newman 未安装成功 | 1. 重新安装 Newman:npm install -g newman ;2. 检查 Node.js 的 node_global 目录是否添加到系统环境变量「Path」中。 |
执行时提示"SSL 证书错误" | 测试环境 HTTPS 证书无效 | 命令中添加 -k 参数,忽略 SSL 验证。 |
数据驱动时提示"data.xxx is undefined" | 数据文件路径错误,或字段名与脚本不匹配 | 1. 检查 -d 后的文件路径是否正确;2. 确认 CSV/JSON 中的字段名与脚本中 data.字段名 一致。 |
HTML 报告未生成 | 未指定 -r html 参数,或路径无写入权限 |
1. 补充 -r html 参数;2. 选择有写入权限的路径(如桌面)。 |
七、进阶用法:集成 CI/CD 工具
Newman 可与 Jenkins、GitLab CI 等工具集成,实现"代码提交后自动执行接口测试":
-
在 CI 服务器上安装 Node.js 和 Newman。
-
将测试集、环境文件、数据文件存入代码仓库(如 Git)。
-
在 CI 配置文件中添加命令(如 Jenkins 的
Execute Windows batch command
):cmdnpm install -g newman newman run ./test/login_collection.json -e ./env/dev_env.json -r junit --reporter-junit-export ./report/junit.xml
-
配置 JUnit 报告路径,CI 工具会自动读取报告并展示测试结果,失败时触发告警。