温馨提示×

如何在Linux上用Postman进行数据驱动测试

小樊
43
2025-12-16 00:30:06
栏目: 智能运维

在 Linux 上使用 Postman 进行数据驱动测试

一 准备环境与工具

  • 安装桌面版 Postman(Linux 原生应用),用于编写与调试用例、集合与环境。
  • 安装 Node.jsnpm,用于全局安装 Newman(Postman 的命令行运行器)。
  • 全局安装 Newman:执行命令:npm install -g newman
  • 准备测试资产:一个 Postman Collection(JSON),可选的 Environment(JSON),以及用于驱动的数据文件 CSV 或 JSON

二 设计数据驱动用例

  • 创建集合与请求:在 Postman 中新建集合,添加请求(如 GET/POST),在请求参数、请求头或请求体中使用变量占位符 {{变量名}} 进行参数化。
  • 准备数据文件:
    • CSV 示例(首行为列名,建议末尾不要留空行):
      username,password
      user1,pass1
      user2,pass2
      
    • JSON 示例:
      [
        { "username": "user1", "password": "pass1" },
        { "username": "user2", "password": "pass2" }
      ]
      
  • 在 Collection Runner 中导入数据文件,设置迭代次数与数据行数一致,即可按行数据批量运行用例。

三 编写参数化与断言脚本

  • 参数化取值:
    • 在请求中直接使用 {{username}}{{password}} 引用数据文件字段。
    • 在脚本中通过 pm.iterationData.get(“字段名”) 读取当前行数据,例如:
      pm.collectionVariables.set("username", pm.iterationData.get("username"));
      pm.collectionVariables.set("password", pm.iterationData.get("password"));
      
  • 断言示例(在请求的 Tests 标签):
    pm.test("Status code is 200", () => {
      pm.response.to.have.status(200);
    });
    
    pm.test("Response contains expected username", () => {
      const jsonData = pm.response.json();
      pm.expect(jsonData.username).to.eql(pm.iterationData.get("username"));
    });
    
  • 常用调试:在 Pre-request Script 或 Tests 中使用 console.log(),并通过 Postman Console 查看输出。

四 在 Linux 终端运行与集成 CI

  • 使用 Newman 运行集合(无环境):
    newman run path/to/collection.json
    
  • 指定数据文件与迭代次数(CSV/JSON 均可):
    newman run path/to/collection.json --iteration-data path/to/data.csv --iteration-count 2
    
  • 使用环境变量或全局变量文件:
    newman run path/to/collection.json -e path/to/env.json -g path/to/globals.json
    
  • 常用增强选项:–reporters cli,json,html–reporter-json-export report.json–reporter-html-export report.html–delay-request 500(间隔毫秒)。
  • Jenkins/GitLab CI 等 CI/CD 中将上述命令放入流水线脚本,即可在提交或部署时自动执行数据驱动测试。

五 常见问题与最佳实践

  • CSV 与 JSON 选择:
    • CSV:结构简单、适合大量数据;但非数值会被加引号,且对 布尔类型复杂结构(嵌套对象/数组)支持较弱。
    • JSON:支持 布尔复杂数据类型,更适合异常场景与多参组合测试。
  • CSV 格式细节:首行必须为列名;字段与值用英文逗号分隔;文件末尾避免空行,以免产生空迭代。
  • 变量作用域:合理使用 环境变量全局变量集合变量,请求中用 {{变量名}} 引用,脚本中用 pm.environment/globals/collectionVariables 读写。
  • 调试与日志:在脚本中使用 console.log,通过 Postman Console 或 Newman 报告定位问题。
  • 持续集成:优先使用 Newman 命令行与 HTML/JSON 报告,便于存档与趋势分析。

0