温馨提示×

Ubuntu下Postman的自动化测试怎么实现

小樊
41
2025-09-27 03:51:23
栏目: 智能运维

Ubuntu下Postman自动化测试实现指南

一、Postman安装(Ubuntu环境)

Postman支持多种方式在Ubuntu上安装,推荐使用Snap包管理器(简单快捷)或APT包管理器(官方源,稳定性高):

  1. Snap安装(推荐)
    打开终端,执行以下命令:

    sudo snap install postman --classic 

    安装完成后,通过终端输入postman即可启动应用。

  2. APT安装(官方源)

    • 导入Postman GPG密钥并添加APT仓库:
      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 

    安装完成后,通过应用菜单或终端输入postman启动。

二、基础准备:创建集合与环境

  1. 创建测试集合
    集合是组织多个API请求的容器,便于批量执行测试。

    • 打开Postman,点击左侧“Collections”→右上角“New Collection”。
    • 输入集合名称(如“API_Automation”),点击“Create”。
  2. 配置环境变量
    环境变量用于管理不同环境(开发、测试、生产)的配置(如URL、API Key),避免硬编码。

    • 点击右上角齿轮图标→“Manage Environments”→“Add”。
    • 输入环境名称(如“Test_Env”),添加变量(如baseUrl=https://api.example.com),点击“Add”。

三、编写自动化测试脚本

测试脚本分为Pre-request Script(请求前执行,用于准备数据)和Tests(响应后执行,用于验证结果),均使用JavaScript编写。

1. Pre-request Script(请求前脚本)

常用于设置动态变量、生成Token或添加请求头。
示例:生成一个随机用户ID并存入环境变量,供后续请求使用:

// 生成随机用户ID(1-1000) const userId = Math.floor(Math.random() * 1000) + 1; // 存入环境变量 pm.environment.set("userId", userId); console.log("Generated userId:", userId); 

2. Tests(测试脚本)

用于验证API响应是否符合预期,常用Chai断言库(Postman内置)。
示例:验证GET请求的响应状态码、响应时间及数据字段:

// 验证状态码为200 pm.test("Status code is 200", function () { pm.response.to.have.status(200); }); // 验证响应时间小于500ms pm.test("Response time is less than 500ms", function () { pm.expect(pm.response.responseTime).to.be.below(500); }); // 解析响应体(JSON格式)并验证字段 pm.test("Response contains valid user data", function () { const jsonData = pm.response.json(); pm.expect(jsonData).to.have.property("id"); pm.expect(jsonData.id).to.eql(pm.environment.get("userId")); // 验证返回的ID与生成的ID一致 pm.expect(jsonData).to.have.property("name").that.is.a("string"); }); 

四、运行自动化测试

  1. 使用Postman Runner(图形界面)

    • 选中目标集合,点击右侧“…”→“Run collection”。
    • 在“Collection Runner”窗口中,选择:
      • Environment:选择配置的环境(如“Test_Env”);
      • Iterations:迭代次数(如10次,批量测试);
      • Data File(可选):上传CSV/JSON数据文件(用于数据驱动测试,如测试不同用户ID);
    • 点击“Run”,查看实时执行结果(包括通过/失败的断言、响应时间等)。
  2. 使用Newman(命令行工具,集成CI/CD)
    Newman是Postman的命令行工具,可将测试集合导出为JSON文件并通过命令行执行,适合自动化流水线。

    • 安装Newman:
      npm install -g newman 
    • 导出Postman集合:在Postman中选中集合→点击“…”→“Export”→选择“Collection Format v2.1”→保存为api_collection.json
    • 执行测试:
      newman run api_collection.json --environment Test_Env.json --reporters cli,json --reporter-json-export newman_report.json 
      参数说明:
      • --environment:指定环境文件(需提前导出);
      • --reporters:生成报告(cli为终端输出,json为文件报告);
      • --reporter-json-export:JSON报告保存路径。

五、高级技巧

  1. 数据驱动测试
    通过CSV/JSON文件批量提供测试数据,实现不同输入值的自动化测试。

    • 准备数据文件(data.csv):
      userId,title 1,delectus aut autem 2,quis ut nam facilis 3,fugiat veniam minus 
    • 在Collection Runner中选择“Data”→上传文件,脚本中通过pm.iterationData.get("columnName")获取数据:
      pm.test("Check userId and title", function () { const jsonData = pm.response.json(); pm.expect(jsonData.userId).to.eql(parseInt(pm.iterationData.get("userId"))); pm.expect(jsonData.title).to.eql(pm.iterationData.get("title")); }); 
  2. 测试结果报告

    • Postman内置报告:Runner执行后会显示通过/失败的断言数量及详情;
    • Newman报告:支持HTML、JSON、JUnit等多种格式,便于集成到CI/CD工具(如Jenkins)中展示。

通过以上步骤,可在Ubuntu环境下实现Postman自动化测试,覆盖从单接口到多接口、从手动到集成的全流程自动化需求。

0