温馨提示×

CentOS下Postman如何进行数据驱动测试

小樊
38
2025-12-11 10:45:26
栏目: 智能运维

CentOS下Postman数据驱动测试实操指南

一 环境准备

  • 安装 Postman(Linux 版)
    • 从官网下载 Postman-linux-x64-*.tar.gz,解压到 /optsudo tar -xzf Postman-linux-x64-*.tar.gz -C /opt
    • 创建软链便于启动:sudo ln -s /opt/Postman/Postman /usr/bin/postman
    • 可选:将 /opt/Postman 加入 PATH,便于命令行启动
  • 安装 Newman(命令行批量运行)
    • 确保已安装 Node.jsnpm,执行:npm install -g newman
  • 准备数据文件
    • 支持 CSV/JSON;CSV 首行为列名,Postman 会将其作为变量名;建议 CSV 保存为 UTF-8 避免中文乱码;CSV 文件末尾不要留空行

二 在Postman中创建数据驱动用例

  • 创建集合与请求
    • 新建 Collection,添加请求并在请求参数(URL、Header、Body)中使用变量占位符 {{变量名}}
  • 准备数据文件
    • CSV 示例(UTF-8 无 BOM,列名与占位符一致)
      username,password
      user1,pass1
      user2,pass2
      
    • JSON 示例
      [
        {"username":"user1","password":"pass1"},
        {"username":"user2","password":"pass2"}
      ]
      
  • 编写测试脚本(Tests)
    • 基础断言
      pm.test("Status code is 200", () => pm.response.to.have.status(200));
      
    • 使用数据文件字段进行校验(如校验返回用户名与数据一致)
      const jsonData = pm.response.json();
      pm.test("Username matches data", () => pm.expect(jsonData.username).to.eql(data.username));
      
  • 参数化方式
    • 请求参数中直接引用 {{username}} / {{password}}
    • 在脚本中也可通过 data.username / data.password 读取当前行数据

三 使用Collection Runner执行

  • 打开集合运行器:在集合右侧选择 Run
  • 配置运行参数
    • 选择目标 CollectionEnvironment
    • Data 选择准备好的 CSV/JSON 数据文件;Iterations 会自动设为数据行数(CSV 首行为列名会被自动忽略)
    • 设置 Delay(每次迭代间隔,单位毫秒)
  • 运行与查看结果
    • 点击 Start Run,在 Runner 界面查看每次迭代的请求、响应、断言结果与错误信息

四 命令行批量运行与CI集成(Newman)

  • 导出集合与环境
    • 在 Postman 中将集合导出为 collection.json,环境导出为 env.json
  • 运行命令
    • 基本:newman run collection.json -e env.json -d data.csv
    • 常用选项
      • -n 指定迭代次数(覆盖数据文件行数)
      • -r cli,json,html 生成多种报告
      • --delay-request 设置迭代间隔(毫秒)
  • 示例脚本(可选)
    const newman = require('newman');
    newman.run({
      collection: 'collection.json',
      environment: 'env.json',
      iterationData: 'data.csv',
      reporters: ['cli','json','html']
    }, (err, summary) => {
      if (err) { console.error(err); return; }
      console.log('Collection run complete.');
    });
    
  • CI/CD 集成
    • Jenkins/GitLab CI 等流水线中安装 Node.js 与 Newman,执行上述命令;根据 summary.run.failures.total 等统计结果设置构建状态

五 常见问题与最佳实践

  • 编码与格式
    • CSV 建议保存为 UTF-8;文件末尾不要留空行;Postman 会把 CSV 中非数值自动加引号,字符串无需手动加引号
  • 数据文件选择
    • CSV:数据量大更轻量;但不支持 bool、复杂结构
    • JSON:支持 boolnull、嵌套对象/数组,适合复杂数据场景
  • 变量作用域
    • 请求参数用 {{变量名}} 引用数据文件列名
    • 脚本中用 data.列名 读取当前行数据;如需在多个请求间共享,可在 Pre-request Script 中写入集合/环境变量
  • 运行配置
    • 使用 Collection RunnerNewman 时,优先让数据文件决定 Iterations,避免与手动设置不一致
  • 报告与排查
    • 命令行建议开启 -r cli,json,html 多格式报告,便于本地与 CI 留存与定位失败用例

0