温馨提示×

centos环境postman如何自定义脚本

小樊
34
2025-12-27 03:41:22
栏目: 智能运维

CentOS环境下Postman自定义脚本实践

一 环境准备与安装

  • 桌面版安装:从 Postman 官网下载 Linux x64 .tar.gz,解压至 /opt,创建软链并启动
    • 命令示例:
      • 解压:sudo tar -xzf Postman-linux-x64-*.tar.gz -C /opt
      • 软链:sudo ln -s /opt/Postman/Postman /usr/bin/postman
      • 启动:postman
  • 命令行运行器 Newman(无界面自动化):安装 Node.jsnpm 后全局安装 Newman
    • 命令示例:
      • 安装:sudo yum install -y nodejs npm
      • 安装 Newman:sudo npm install -g newman
  • 导入资源:在 Postman 中创建集合与环境,导出为 collection.jsonenvironment.json,用于后续脚本执行与自动化。

二 编写自定义脚本的核心要点

  • 脚本位置与作用
    • Pre-request Script:请求发送前执行,常用于生成 timestamp、签名、动态 URL/Headers/Body、读取数据文件等。
    • Tests:收到响应后执行,用于断言与提取数据供后续请求使用。
  • 常用 API 与作用域
    • 变量读写:pm.environment.set/getpm.globals.set/getpm.collectionVariables.set/getpm.variables.set/get
    • 响应与断言:pm.response.json()/text()pm.response.to.have.status(200)pm.expect(...).to...
    • 请求修改:pm.request.headers.add({key, value})pm.request.url = '...'
  • 调试与日志
    • 使用 console.log(...) 输出调试信息;在桌面版通过 View → Show Postman Console 查看。
  • 数据驱动
    • 结合 Newman 的数据文件(如 CSV/JSON)实现批量参数化运行。

三 桌面版脚本示例

  • Pre-request Script:生成时间戳并写入变量
    • 代码:
      • pm.variables.set("timestamp", new Date().getTime());
  • 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));
      • const json = pm.response.json(); pm.expect(json.id).to.be.a('number');
      • pm.environment.set("userId", json.id);
  • 变量作用域优先级提示:同名变量时优先级为 请求作用域 > 集合作用域 > 环境作用域 > 全局作用域,便于在请求内临时覆盖值。

四 无界面自动化与CI集成

  • 基本运行
    • 命令:newman run collection.json -e environment.json
  • 数据驱动与报告
    • 数据文件:newman run collection.json -e environment.json -d data.csv
    • 生成 HTML 报告:newman run collection.json -e environment.json -r html,cli
  • Shell 自动化脚本
    • 示例 run_postman.sh:
      • #!/bin/bash
      • COLLECTION_FILE="/path/to/collection.json"
      • ENVIRONMENT_FILE="/path/to/environment.json"
      • newman run "$COLLECTION_FILE" -e "$ENVIRONMENT_FILE" -r cli,html
    • 赋权与执行:
      • chmod +x run_postman.sh
      • ./run_postman.sh
  • CI/CD 集成
    • Jenkins/GitHub Actions/GitLab CI 中安装 Node.js 与 Newman,执行上述命令即可完成 API 自动化测试与报告归档。

五 常见问题与排错

  • 脚本语法与断言
    • 测试需使用 pm.test(name, fn) 包裹断言;可用 pm.expect 链式断言或旧式 tests[‘name’] = … 写法。
  • 变量存取与类型
    • 环境变量仅支持 字符串,复杂对象请使用 JSON.stringify/JSON.parse 存取。
  • 调试信息
    • 使用 console.log 输出,桌面版在 Postman Console 查看;无界面运行时使用 -r cli 查看运行日志。
  • 网络与证书
    • 如遇 HTTPS 证书校验问题,可在 Newman 中按需关闭校验(仅测试环境),或导入受信任证书。

0