首页主机资讯Ubuntu下Postman如何使用脚本功能

Ubuntu下Postman如何使用脚本功能

时间2025-10-31 12:45:03发布访客分类主机资讯浏览969
导读:Ubuntu下Postman脚本功能使用指南 一、Postman脚本的核心类型 Postman脚本分为两类,用于覆盖请求生命周期的关键环节: 前置脚本(Pre-request Script):在请求发送前执行,主要用于动态生成数据(如随机...

Ubuntu下Postman脚本功能使用指南

一、Postman脚本的核心类型

Postman脚本分为两类,用于覆盖请求生命周期的关键环节:

  • 前置脚本(Pre-request Script):在请求发送前执行,主要用于动态生成数据(如随机字符串、时间戳)、设置请求头/参数、生成认证令牌等。
  • 测试脚本(Tests):在请求响应后执行,用于验证响应状态码、响应体内容、响应时间等,是自动化测试的核心环节。

二、脚本编写基础:pm对象与常用方法

Postman脚本通过pm对象实现与环境的交互,常用方法包括:

  • 变量操作
    • 获取环境变量:pm.environment.get("variableName")
    • 设置环境变量:pm.environment.set("variableName", "value")
    • 获取集合变量:pm.collectionVariables.get("variableName")
  • 断言方法:通过pm.test()定义测试用例,结合pm.expect()实现断言(如pm.expect(response.code).to.eql(200))。
  • 请求发送pm.sendRequest()用于发送异步请求(如获取token后调用其他接口)。

三、前置脚本(Pre-request Script)实战示例

前置脚本常用于动态数据准备环境配置,以下是常见场景:

  1. 生成随机数据并设置环境变量

    // 生成10位随机字符串(字母+数字)
    const randomStr = Math.random().toString(36).substr(2, 10);
        
    pm.environment.set("randomStr", randomStr);
        
    
    // 生成10位时间戳(秒级)
    const timestamp = Math.floor(Date.now() / 1000).toString();
        
    pm.globals.set("timestamp", timestamp);
        
    

    用途:作为接口请求参数,避免重复数据。

  2. 设置请求头(如Bearer Token)

    // 从环境变量获取token并设置请求头
    const token = pm.environment.get("authToken");
    
    pm.request.headers.add({
    
      key: "Authorization",
      value: "Bearer " + token
    }
        );
    
    

    用途:用于需要认证的API请求。

四、测试脚本(Tests)实战示例

测试脚本通过断言验证接口响应的正确性,以下是常见场景:

  1. 验证响应状态码
    pm.test("Status code is 200", function () {
        
      pm.response.to.have.status(200);
    
    }
        );
    
    
  2. 验证响应体内容
    pm.test("Response contains valid user data", function () {
        
      const jsonData = pm.response.json();
        
      pm.expect(jsonData).to.have.property("id");
        
      pm.expect(jsonData.name).to.eql("test_user");
    
    }
        );
    
    
  3. 验证响应时间
    pm.test("Response time is less than 500ms", function () {
        
      pm.expect(pm.response.responseTime).to.be.below(500);
    
    }
        );
    
    
  4. 复杂断言(结合正则表达式)
    pm.test("Email format is valid", function () {
        
      const jsonData = pm.response.json();
    
      pm.expect(jsonData.email).to.match(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{
    2,}
        $/);
    
    }
        );
        
    
    用途:确保接口返回的数据符合业务逻辑。

五、脚本调试与优化

  1. 使用console.log输出调试信息

    console.log("Random string generated:", pm.environment.get("randomStr"));
        
    console.log("Response body:", pm.response.json());
    
    

    用途:通过Postman的“Console”面板查看输出,定位脚本问题。

  2. 查看测试结果

    • 发送请求后,点击响应面板的“Tests”标签,查看断言结果(通过/失败)。
    • 失败的断言会显示红色错误信息,帮助快速定位问题。

六、自动化测试:集合运行器与Newman

  1. Postman集合运行器

    • 将多个请求组织到“Collection”中。
    • 点击“Runner”按钮,选择集合,配置迭代次数、环境变量等,批量执行请求及脚本。
    • 查看汇总测试结果(通过率、失败详情)。
  2. Newman命令行工具

    • 安装Newman:npm install -g newman
    • 导出Postman集合为JSON文件(通过“Collection”面板的“Export”按钮)。
    • 运行集合:newman run /path/to/your/collection.json --environment /path/to/your/environment.json
    • 用途:集成到CI/CD流程(如GitHub Actions),实现自动化测试。

七、高级技巧:数据驱动与异步处理

  1. 数据驱动测试

    • 使用CSV/JSON文件作为数据源,在“Collection Runner”中配置“Data”选项。
    • 通过pm.iterationData.get("key")获取数据(如pm.iterationData.get("username"))。
    • 用途:用不同数据重复执行相同测试,提高测试覆盖率。
  2. 异步请求处理

    • 使用pm.sendRequest()发送异步请求,处理依赖接口(如先获取token,再用token调用其他接口)。
    pm.sendRequest({
    
      url: pm.environment.get("apiBaseUrl") + "/token",
      method: "POST",
      body: JSON.stringify({
     username: "user", password: "pass" }
    )
    }
        , (error, response) =>
     {
    
      if (!error) {
        
        const token = response.json().token;
        
        pm.environment.set("authToken", token);
    
      }
    
    }
        );
        
    

    用途:处理需要顺序执行的API请求。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu下Postman如何使用脚本功能
本文地址: https://pptw.com/jishu/739832.html
ubuntu分卷后如何扩展分区 Postman在Ubuntu中如何创建环境变量

游客 回复需填写必要信息