Skip to content

Postman 变量与脚本进阶 ​

Postman 不仅仅是一个请求发送工具,它还内置了强大的 JavaScript 引擎,允许在请求前后执行脚本,实现参数化、动态签名和自动化测试。

一、 变量系统 (Variables) ​

Postman 的变量系统允许我们在不同请求间重用值,避免硬编码。

1.1 变量作用域 ​

Postman 变量优先级从低到高:

  1. Global (全局变量): 在整个 Workspace 有效。
  2. Collection (集合变量): 仅在当前 Collection 有效。
  3. Environment (环境变量): 依赖于当前选择的 Environment(如 Dev/Prod),最常用。
  4. Local (局部变量): 仅在当前请求或脚本运行期间有效。
  5. Data (数据变量): 在 Runner 运行时从 CSV/JSON 文件读取。

1.2 设置与使用变量 ​

  • 设置变量:

    • UI 方式:点击右上角 "眼睛" 图标 -> Edit globals/environment。

    • 脚本方式:

      ```javascript
      pm.globals.set("variable_key", "variable_value");
      pm.environment.set("variable_key", "variable_value");
      ```
      
  • 使用变量:

    • 在 URL/Headers/Body 中:使用双大括号 。

    • 在脚本中:

      ```javascript
      pm.environment.get("variable_key");
      ```
      

1.3 内置动态变量 ​

Postman 提供了一些开箱即用的动态变量,用于生成随机数据:

  • : 生成 UUID
  • : 当前时间戳
  • : 0-1000 随机整数

二、 Pre-request Script (预请求脚本) ​

Pre-request Script 在请求发送 之前 执行。常用于:

  • 生成时间戳或随机数。
  • 计算接口签名 (Sign)。
  • 动态设置 Header (如 Token)。

2.1 常用脚本示例 ​

示例 1:设置时间戳 ​

javascript
// 获取当前时间戳
var timestamp = Math.round(new Date().getTime());
// 存入全局变量
pm.globals.set("timestamp", timestamp);

使用方式:在请求参数中填入 。

示例 2:生成加密签名 (Advanced) ​

假设接口需要 Authorization 头,格式为 Basic Base64(appid:sha256(token+date))。

javascript
var CryptoJS = require('crypto-js');

// 1. 获取请求体长度
if (pm.request.body) {
    console.log("请求体长度:" + pm.request.body.toString().length);
}

// 2. 生成 GMT 时间
var date = new Date().toUTCString();
pm.environment.set('date', date);

// 3. 计算签名
var appid = "12521111104";
var encryptToken = "your_token_here";
var message = encryptToken + date;
var auth256 = CryptoJS.SHA256(message); // SHA256 加密
var appidAuth = appid + ":" + auth256;

// 4. Base64 编码
var appidAuthStr = CryptoJS.enc.Utf8.parse(appidAuth); 
var base64sha256 = CryptoJS.enc.Base64.stringify(appidAuthStr);

// 5. 设置环境变量 Authorization
pm.environment.set("Authorization", "Basic " + base64sha256);

console.log("Generated Auth: Basic " + base64sha256);

2.2 调试技巧 ​

  • 使用 console.log() 输出调试信息。
  • 通过菜单 View -> Show Postman Console (快捷键 Ctrl+Alt+C) 查看日志。

Console Debugging

方舟 · Ark