Postman可通过Collection Runner实现高并发压力测试,支持基础压测、参数化数据驱动、Pre-request动态负载、Tests链式状态传递及Newman命令行扩展五种方式。

如果您需要验证API在高并发场景下的响应能力与稳定性,Postman 提供了基于 Collection Runner 的压力测试能力。以下是实现批量压力测试的具体路径:
一、使用 Collection Runner 执行基础压测
Collection Runner 是 Postman 内置的批量执行工具,通过设定迭代次数与请求间隔,可模拟多轮并发调用,适用于初步压力探查。该方式无需外部依赖,适合快速验证单接口或轻量级集合。
1、在 Postman 左侧导航栏中,右键目标 Collection → 选择“Run”。
2、在弹出的 Runner 窗口中,确认已选中该 Collection 下全部或指定请求。
3、在“Iterations”栏输入期望的总执行轮数,例如 50 次。
4、在“Delay”栏设置每次请求之间的毫秒级间隔,例如 100 ms,以控制请求节奏。
5、点击“Run Collection”按钮启动压测流程。
二、结合 CSV 或 JSON 数据文件进行参数化压测
当需对不同参数组合施加压力(如多用户 ID、多样化请求体),仅靠固定请求无法覆盖真实负载特征。此时导入结构化数据文件,使每次迭代携带独立变量,可显著提升压测真实性与覆盖面。
1、准备 CSV 文件(如 data.csv),内容示例:userId,username,email1,john,john@example.com2,jane,jane@example.com
2、在目标请求的 URL、Headers 或 Body 中,使用双花括号引用变量,例如 {{userId}}、{{username}}。
3、打开 Runner 界面,在“Data”区域点击“Select File”,上传该 CSV 文件。
4、勾选“Use data file for iterations”,并确认“Iterations”值不低于数据行数。
5、点击“Run Collection”开始带参压测。
三、通过 Pre-request Script 控制动态负载强度
Pre-request Script 可在每次请求发出前执行 JavaScript 逻辑,用于生成时间戳、随机数、递增序列或条件性修改请求参数,从而构建非固定模式的压力流,更贴近生产环境流量特征。
1、在目标请求编辑页,切换至“Pre-request Script”标签页。
2、输入脚本,例如生成递增订单号:pm.variables.set("order_id", pm.iterationData.get("userId") + "_" + Date.now());
3、在请求 URL 或 Body 中引用该变量:{{order_id}}。
4、在 Runner 中配置迭代次数与延迟后运行集合。
四、利用 Tests 脚本实现请求链式压测与状态传递
对于需维持会话状态(如登录态 Token)的多接口压测场景,单次请求无法独立完成全流程。通过 Tests 脚本提取响应字段并写入环境变量,再由后续请求复用,可构建有状态的压测工作流,确保压力路径符合业务逻辑。
1、在登录请求的 Tests 标签页中添加脚本:pm.test("Extract auth token", function () { const jsonData = pm.response.json(); pm.environment.set("auth_token", jsonData.token);});
2、在后续受保护接口的 Authorization 设置中选择 “Bearer Token”,并在 Token 字段填入 {{auth_token}}。
3、将登录请求与业务请求共同加入同一 Collection。
4、在 Runner 中设定足够迭代次数(如 30),启动压测。
五、导出为 Newman 命令行压测以脱离 UI 限制
Postman UI 在高迭代、长时运行下存在资源占用与稳定性风险。Newman 是 Postman 官方命令行运行器,支持无界面、可脚本化、可集成 CI/CD 的压测执行,适用于长时间、高强度压力场景。
1、在终端执行 npm install -g newman 安装 Newman。
2、导出 Collection 为 JSON 文件(右键 Collection → Export → Collection v2.1)。
3、导出环境文件(右键 Environments → Export)。
4、执行命令:newman run "my-collection.json" -e "my-env.json" -n 100 --delay 50。
5、观察终端实时输出的响应时间、状态码与失败统计。












