温馨提示×

Ubuntu Postman自动化测试实践

小樊
34
2025-12-20 04:37:06
栏目: 智能运维

Ubuntu 上使用 Postman 与 Newman 的自动化测试实践

一 环境准备与安装

  • 安装 Postman(任选其一)
    • Snap:sudo snap install postman --classic
    • APT:导入 GPG 并添加仓库后安装
      • wget -qO - https://dl.postman.co/postman.gpg | sudo apt-key add -
      • echo “deb https://dl.postman.co/debian $(lsb_release -cs) main” | sudo tee /etc/apt/sources.list.d/postman.list
      • sudo apt update && sudo apt install postman
    • Flatpak:
      • sudo apt update && sudo apt install flatpak
      • flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
      • flatpak install flathub com.postman.Postman
  • 安装 Newman(Postman 命令行运行器)
    • npm install -g newman
    • 验证:newman -h
    • 说明:Postman 提供图形化界面用于构建与调试用例,Newman 负责在命令行与 CI 环境中批量运行与集成

二 构建第一个自动化测试用例

  • 创建请求
    • 新建请求,选择方法(如 GET/POST),填写 URL,按需设置 Headers/Body/Auth
  • 添加测试脚本(Tests)
    • 断言状态码:
      • pm.test(“状态码为200”, () => pm.response.to.have.status(200));
    • 断言响应体字段:
      • const jsonData = pm.response.json(); pm.test(“返回的用户姓名正确”, () => pm.expect(jsonData.name).to.eql(“test_user”));
  • 组织与运行
    • 将请求保存到 Collection,使用 Collection Runner 批量运行并查看结果
    • 说明:Tests 中的断言会在请求返回后自动执行,适合做结果校验与回归测试

三 变量环境与数据驱动

  • 环境变量与全局变量
    • 在环境/全局中定义如 baseUrl、token,在请求中使用 {{baseUrl}}、{{token}} 引用
    • 在脚本中读写:
      • const token = pm.environment.get(“token”);
      • pm.environment.set(“token”, “new-token”);
  • 预请求脚本(Pre-request Script)
    • 常用于动态生成签名、时间戳、设置 Authorization 头:
      • pm.request.headers.add({ key: “Authorization”, value: "Bearer " + pm.environment.get(“token”) });
  • 数据驱动(Data Files)
    • 使用 CSV/JSON 数据文件进行多组用例参数化,Newman 通过 --data 参数加载数据文件批量运行
    • 说明:变量与环境让同一套集合可在 开发/测试/生产 环境复用,数据与脚本分离便于维护与扩展

四 命令行运行与报告输出

  • 基本运行
    • newman run <collection.json> -e <environment.json>
  • 常用选项
    • 迭代次数:–iteration-count N
    • 数据文件:–data data.json 或 --data data.csv
    • 报告:
      • CLI 与 JUnit:–reporters cli,junit --reporter-junit-export report.xml
      • HTML 报告:–reporters html --reporter-html-export report.html
  • 示例
    • newman run collection.json -e dev.env.json --data users.csv --reporters cli,junit,html --reporter-junit-export report.xml --reporter-html-export report.html
    • 说明:报告可用于可视化与质量门禁,JUnit 报告便于在 CI 中展示与归档

五 CI/CD 集成示例

  • GitHub Actions
    • name: Run Postman API Tests on: push: branches: [ main ] pull_request: branches: [ main ] jobs: api-tests: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: ‘18’ - run: npm install -g newman - run: > newman run collection.json -e environment.json –reporters cli,junit –reporter-junit-export report.xml - uses: actions/upload-artifact@v4 with: name: postman-report path: report.xml
  • Jenkins
    • 在构建步骤执行 Shell:
      • newman run /path/to/collection.json -e /path/to/env.json --reporters cli,junit --reporter-junit-export report.xml
  • 实践要点
    • 集合与环境 纳入版本控制;使用 Secrets 管理敏感信息(如 token、密码
    • 在流水线中设置质量门禁(如非 0 退出码即失败),并归档 JUnit/HTML 报告以便回溯

0