在 Ubuntu 上使用 Postman 进行性能测试
一 安装与准备
- 下载并解压 Postman(Linux x64):
- wget https://dl.pstmn.io/download/latest/linux-x64 -O postman.tar.gz
- sudo tar -xzf postman.tar.gz -C /opt/
- 创建全局命令链接:
- sudo ln -s /opt/Postman/Postman /usr/local/bin/postman
- 创建桌面启动器(可选):
- sudo nano /usr/share/applications/postman.desktop
- 写入:
- [Desktop Entry]
- Encoding=UTF-8
- Name=Postman
- Exec=/opt/Postman/Postman/Postman
- Icon=/opt/Postman/app/resources/app/assets/icon.png
- Terminal=false
- Type=Application
- Categories=Development
- 更新桌面数据库:sudo update-desktop-database
- 准备测试资产:在 Postman 中创建并完善 Collection,为接口添加 Tests 断言;如需数据驱动,准备 CSV/JSON 数据文件(含中文请使用 UTF-8 编码)。
二 构建可复用的性能测试集合
- 参数化与数据驱动:在请求中使用变量(如 {{userId}}),在 Pre-request Script 读取数据文件并写入环境变量/集合变量,实现不同用户/数据的压测。
- 示例(Pre-request Script):
- const userId = pm.collectionVariables.get(“userId”);
- pm.request.url.query.add({ key: “userId”, value: userId });
- 断言与响应时间校验:在 Tests 中校验状态码、业务字段与响应时间阈值,便于在压测报告中快速识别异常。
- 示例(Tests):
- pm.test(“Status code is 200”, () => pm.response.to.have.status(200));
- pm.test(“Response time < 200ms”, () => pm.expect(pm.response.responseTime).to.be.below(200));
- 延迟与迭代控制:在 Collection Runner 中设置 Delay(控制请求间隔)与 Iterations(迭代次数),配合数据文件实现持续加压与场景覆盖。
三 在 Ubuntu 上执行与监控
- 图形界面运行:打开 Postman → 进入 Runner → 选择集合与环境 → 配置 Iterations、Delay、Data File(CSV/JSON) → 点击 Run 开始压测;测试完成后查看每个请求的 响应时间、成功率 与断言结果。
- 命令行批量与 CI:使用 Newman(Postman 命令行运行器)在 Ubuntu 终端执行集合,便于集成到 Jenkins/GitLab CI 等流水线。
- 示例:
- newman run my-collection.json -e dev.env.json -d data.csv -n 100 --delay-request 100
- 服务器资源监控:Postman/Newman 侧重接口指标,建议同时用 top/htop/vmstat 等监控被测服务的 CPU、内存、I/O,关联压测结果定位瓶颈。
四 结果判读与优化建议
- 关键指标:关注 平均响应时间、P95/P99 延迟、成功率/错误率、吞吐量;若错误率升高或 P95 明显上扬,优先排查后端与数据库瓶颈。
- 场景覆盖:通过 数据驱动 覆盖不同用户状态/参数组合;用 Delay 控制请求节奏,模拟更接近真实的并发与持续负载。
- 客户端侧优化:在 Ubuntu 上尽量使用 轻量级桌面环境(如 Xfce/LXDE)、减少不必要启动项、启用硬件加速、使用 SSD,可降低 Postman 自身资源占用、提升稳定性。
五 适用场景与工具选择
- Postman/Runner/Newman 适合做 功能验证 + 简单压测/并发检查;其能力相对基础,难以精细控制并发模型与复杂场景。
- 复杂性能测试(如 高并发、分布式、复杂链路与思考时间、精准 RPS 控制)建议使用 JMeter、k6、Locust 等专业工具;Postman 更适合作为开发/联调阶段的辅助与回归基线。