温馨提示×

centos中postman数据驱动测试

小樊
38
2025-12-07 11:22:10
栏目: 智能运维

在 CentOS 中使用 Postman 进行数据驱动测试

一 环境准备与安装

  • 下载并解压 Postman Linux 包(x64):
    • 命令示例:sudo tar -xzf Postman-linux-x64-*.tar.gz -C /opt
  • 创建软链便于启动:
    • 命令示例:sudo ln -s /opt/Postman/Postman /usr/bin/postman
  • 可选:将 Postman 目录加入 PATH,便于命令行直接执行。
  • 如需在命令行批量运行与 CI,建议安装 Node.jsNewman
    • 命令示例:npm install -g newman
  • 说明:Postman 图形界面在 CentOS 桌面环境可用;无界面或服务器场景建议直接使用 Newman。

二 数据文件与参数化

  • 支持的数据文件格式:CSV、JSON
  • 示例 CSV(UTF-8 无 BOM,首行为列名,建议不要有空行):
    • 文件内容:
      • username,password
      • user1,pass1
      • user2,pass2
  • 示例 JSON:
    • 文件内容:
      • [ { “username”: “user1”, “password”: “pass1” }, { “username”: “user2”, “password”: “pass2” } ]
  • 参数化引用方式:
    • 在请求参数、请求头、请求体中使用 {{变量名}} 引用数据列(如:{{username}}、{{password}})。
    • 在 Tests/Pre-request Script 中通过 data.列名 读取当前行数据(如:data.username)。

三 在 Postman 图形界面运行数据驱动

  • 创建集合(Collection)并添加请求,使用 {{变量名}} 完成参数化;在 Tests 中编写断言,例如:
    • 断言状态码:
      • pm.test(“Status code is 200”, () => pm.response.to.have.status(200));
    • 断言响应字段与数据文件一致:
      • pm.test(“Response contains expected data”, () => { const jsonData = pm.response.json(); pm.expect(jsonData.username).to.eql(data.username); });
  • 打开 Collection Runner(Runner):
    • 选择目标集合与环境;在 Data 处选择准备好的 CSV/JSON 数据文件,使用 Preview 预览确认解析无误。
    • 迭代次数会自动与数据行数一致(CSV 首行为列名会被自动忽略);可设置 Delay(每次迭代间隔)与是否保存响应等选项。
    • 点击 Start Run 执行,查看每个请求与断言结果。

四 在 CentOS 命令行批量运行 Newman

  • 将集合导出为 JSON(例如:my-api-tests.json),准备数据文件(例如:data.csv)。
  • 直接命令行运行示例:
    • newman run my-api-tests.json --iteration-data data.csv
  • 使用 Node 脚本运行(run-tests.js):
    • 代码示例:
      • const newman = require(‘newman’); newman.run({ collection: ‘path/to/my-api-tests.json’, iterationData: ‘path/to/data.csv’ }, function (err, summary) { if (err) { console.error(err); return; } console.log(summary); });
    • 执行命令:node run-tests.js
  • 适用场景:服务器/CI 环境、定时任务、批量回归与报告集成。

五 常见问题与最佳实践

  • 编码与格式:
    • CSV 必须为 UTF-8(建议无 BOM),首行为列名;文件末尾避免空行;CSV 中非数值会被自动加引号,字符串无需手动加引号。
  • 数据驱动要点:
    • 请求用 {{变量名}} 引用数据;脚本中用 data.列名 读取当前行数据;CSV 首行会被自动忽略。
  • 运行配置:
    • Runner 中可用 Preview 校验数据;迭代次数通常由数据行数决定;可设置 Delay 控制节奏;按需勾选保存响应与 Cookie 策略。
  • 无头与自动化:
    • 无界面或 CI 建议使用 Newman 执行集合与数据文件,便于日志、报告与流水线集成。

0