温馨提示×

Postman在CentOS上的自动化测试如何实现

小樊
40
2025-11-29 15:35:56
栏目: 智能运维

在 CentOS 上实现 Postman 自动化测试

一 环境准备与安装

  • 安装 Node.js 与 npm(Newman 依赖):执行 sudo yum install -y nodejs npm(若版本较旧,可启用 NodeSource 仓库升级)。
  • 下载并安装 Postman(Linux 64 位):
    • 下载:wget https://dl.pstmn.io/download/latest/linux64 -O postman.tar.gz
    • 解压:sudo tar -xzf postman.tar.gz -C /opt
    • 建立软链:sudo ln -s /opt/Postman/Postman /usr/bin/postman
    • 可选桌面入口:创建 /usr/share/applications/postman.desktopExec=/usr/bin/postmanIcon=/opt/Postman/app/resources/app/assets/icon.png
  • 安装 Newman(命令行运行 Postman 集合):npm install -g newman
    以上步骤完成后,可在无界面环境下通过 Newman 执行 Postman 集合的自动化测试。

二 编写与导出测试集合

  • 在 Postman 中创建 Collection,为相关接口组织请求。
  • Pre-request Script 中设置动态变量,例如:pm.environment.set("timestampHeader", new Date().toISOString());
  • Tests 中编写断言,例如:
    • 状态码:pm.test("Status code is 200", () => pm.response.to.have.status(200));
    • 响应时间:pm.test("Response time < 500ms", () => pm.expect(pm.response.responseTime).to.be.below(500));
    • 响应体字段:pm.test("Has userId", () => pm.expect(pm.response.json()).to.have.property("userId"));
  • 通过 Manage Environments 创建环境(如 Development),添加变量(如 baseUrl、apiKey),在请求中使用 {{baseUrl}}/users 引用。
  • 将集合与环境分别 导出为 JSON 文件(如 collection.json、environment.json),便于在 CentOS 上用 Newman 运行。

三 在 CentOS 上运行自动化测试

  • 基本运行(使用集合与环境文件):
    • 命令:newman run collection.json -e environment.json
  • 使用 Node.js 脚本运行(便于自定义与集成):
    • 新建 run-tests.js:
      const newman = require('newman');
      newman.run({
        collection: 'path/to/collection.json',
        environment: 'path/to/environment.json'
      }, function (err, summary) {
        if (err) { console.error(err); process.exit(1); }
        console.log(summary);
        process.exit(summary.run.failures.length > 0 ? 1 : 0);
      });
      
    • 执行:node run-tests.js
  • 常用 Newman 选项(按需添加):
    • 数据驱动:-d data.csv-d data.json
    • 生成报告:-r cli,html,json;报告目录通过 --reporter-html-export report.html 指定
    • 全局变量/迭代次数:-g globals.json-n 10
      示例命令:newman run collection.json -e environment.json -d data.csv -r cli,html --reporter-html-export report.html -n 5

四 集成 CI/CD 与报告通知

  • Jenkins/GitLab CI 中新增构建步骤执行 Newman(示例命令见上),将集合与环境文件纳入代码仓库管理。
  • 生成 HTML 报告 并在 CI 中归档;若需在 Jenkins 展示样式,需配置报告内容安全策略或使用其 HTML Publisher 插件。
  • 结合 钉钉/邮件 等做结果通知(在 Newman 执行后解析结果并调用 Webhook 发送消息)。
  • 可扩展为完整链路:Postman + Newman + Git + Jenkins + 钉钉/邮件提醒,实现提交/部署即自动测试与结果推送。

五 常见问题与实用建议

  • 无头运行无需启动图形界面,直接使用 Newman 执行集合即可。
  • 环境与变量:优先使用 Environment 管理不同环境(开发/测试/预发/生产),用 {{var}} 在请求中引用。
  • 数据驱动与迭代:通过 CSV/JSON 数据文件 做参数化,配合 -n 指定循环次数,覆盖多组用例。
  • 依赖与链路调用:在 Tests 中用 pm.sendRequest 发起前置请求并提取 token 等数据,存入环境变量供后续请求使用。
  • 报告与稳定性:选择 HTML/JSON 报告便于留存与审计;在 CI 中设置合适的超时与重试策略,保障稳定性。

0