温馨提示×

Ubuntu上Postman的脚本怎么编写

小樊
53
2025-09-27 03:56:25
栏目: 智能运维

Ubuntu上Postman脚本编写指南
Postman的脚本功能主要用于前置数据处理(Pre-request Script)和响应结果验证(Tests Script),支持JavaScript语法,借助pm对象实现变量操作、请求发送、断言等功能。以下是具体编写步骤与常见用法:

一、基础准备:进入脚本编辑界面

  1. 打开Postman应用,创建新请求或选中现有请求。
  2. 在请求编辑器右侧,点击Pre-request Script(前置脚本)或Tests(测试脚本)标签页,进入脚本编写区域。

二、前置脚本(Pre-request Script):请求前的数据处理

前置脚本在请求发送前执行,常用于生成动态数据设置请求头/参数获取环境变量等场景。

常用操作示例

  • 生成动态数据
    // 生成10位随机字符串(字母+数字)
    pm.environment.set("randomStr", Math.random().toString(36).substr(2, 10));
    // 生成10位随机整数
    pm.environment.set("randomNum", Math.floor(Math.random() * 1e10));
    // 生成秒级时间戳(常用于接口时间参数)
    pm.globals.set("timestamp", Math.floor(Date.now() / 1000).toString());
    
  • 设置请求头
    从环境变量获取token并添加到请求头:
    const token = pm.environment.get("authToken");
    pm.request.headers.add({ key: "Authorization", value: "Bearer " + token });
    
  • 获取环境/全局变量
    const baseUrl = pm.environment.get("apiBaseUrl");
    const userId = pm.globals.get("currentUserId");
    

以上脚本会在请求发送前执行,确保动态数据准备好。

三、测试脚本(Tests Script):响应结果的验证

测试脚本在请求响应后执行,用于验证响应状态解析响应数据断言业务逻辑等,需通过pm.test()包裹断言逻辑。

常用操作示例

  • 基础断言:验证状态码、响应时间
    // 断言状态码为200
    pm.test("Status code is 200", () => {
        pm.response.to.have.status(200);
    });
    // 断言响应时间小于200ms
    pm.test("Response time is less than 200ms", () => {
        pm.expect(pm.response.responseTime).to.be.below(200);
    });
    
  • 解析与验证响应体
    假设接口返回JSON格式数据(如{"code": 200, "data": {"email": "user@example.com"}}):
    // 解析JSON响应
    const jsonData = pm.response.json();
    // 断言data.email等于环境变量中的username
    pm.test("Email matches environment variable", () => {
        pm.expect(jsonData.data.email).to.eql(pm.environment.get("username"));
    });
    // 断言code为200
    pm.test("Response code is 200", () => {
        pm.expect(jsonData.code).to.equal(200);
    });
    
  • 链式请求:用前置请求的结果调用下一个接口
    // 发送前置请求获取token
    pm.sendRequest("https://api.example.com/login", (err, response) => {
        if (!err) {
            const token = response.json().token;
            // 将token存入环境变量
            pm.environment.set("authToken", token);
        }
    });
    

以上脚本会在响应返回后自动执行,通过测试结果面板查看断言结果。

四、常用pm对象方法

Postman的pm对象提供了丰富的API,以下是高频使用的方法:

  • 变量操作
    // 设置/获取/删除环境变量
    pm.environment.set("key", "value");
    const value = pm.environment.get("key");
    pm.environment.unset("key");
    // 设置/获取/删除全局变量
    pm.globals.set("key", "value");
    const globalValue = pm.globals.get("key");
    pm.globals.unset("key");
    
  • 请求操作
    // 获取请求URL
    const url = pm.request.url.toString();
    // 修改请求头
    pm.request.headers.add({ key: "Content-Type", value: "application/json" });
    
  • 响应操作
    // 获取响应状态码
    const statusCode = pm.response.code;
    // 获取响应体(字符串/JSON)
    const responseBody = pm.response.text();
    const jsonResponse = pm.response.json();
    // 获取响应时间(ms)
    const responseTime = pm.response.responseTime;
    
  • 发送异步请求
    pm.sendRequest("https://api.example.com/data", (err, response) => {
        if (err) console.error(err);
        else console.log(response.json());
    });
    

这些方法覆盖了脚本编写的大部分需求,可根据业务场景灵活组合。

五、调试与优化

  1. 查看日志
    使用console.log()输出变量值或调试信息,在Postman的View → Show Postman Console(或快捷键Alt+Ctrl+C)中查看日志。
    示例:
    console.log("Generated randomStr:", pm.environment.get("randomStr"));
    
  2. 断点调试
    在脚本编辑区域点击行号设置断点,点击Send按钮逐步执行脚本,查看变量变化。
  3. 集合运行测试
    将多个请求添加到集合,点击集合右侧的Run按钮,批量执行请求并查看所有测试结果,提升测试效率。

通过以上步骤,可在Ubuntu上高效使用Postman脚本实现API自动化测试、数据处理及流程编排。脚本编写需结合业务场景,灵活运用pm对象的方法和JavaScript语法,逐步优化测试流程。

0