温馨提示×

Ubuntu中Postman如何使用Pre-request Script

小樊
44
2025-11-30 11:07:48
栏目: 智能运维

Ubuntu中Postman使用Pre-request Script

一 环境与入口

  • Ubuntu 上安装并启动 Postman(可用 Snap 或下载 Linux 64 版本解压运行),启动后在左侧选择或创建一个 请求,在请求编辑区底部切换到 Pre-request Script 页签即可编写脚本。该脚本会在请求发送前执行,适合做请求构建与数据准备。

二 常用操作速览

  • 变量读写
    • 读取:pm.environment.get(“key”)pm.globals.get(“key”)pm.collectionVariables.get(“key”)pm.variables.get(“key”)
    • 设置:pm.environment.set(“key”,“value”)pm.globals.set(“key”,“value”)pm.collectionVariables.set(“key”,“value”)
  • 请求头操作
    • 新增:pm.request.headers.add({key:“Header-Name”, value:“value”})
    • 删除:pm.request.headers.remove(“Header-Name”)
  • 在请求中使用变量
    • URL/Params/Headers/Body 中以 {{变量名}} 引用,例如:{{token}}、{{timestamp}}。

三 常见场景示例

  • 动态生成时间戳并写入变量

    • 代码:
      const ts = Date.now();
      pm.environment.set("timestamp", ts);
      
    • 使用:在请求参数或Header中填写 {{timestamp}}
  • 生成随机数与随机手机号

    • 代码:
      const rand = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;
      pm.environment.set("randomInt", rand(1000, 9999));
      const mobile = "18" + rand(100000000, 999999999);
      pm.environment.set("mobile", mobile);
      
    • 使用:在 BodyParams 中使用 {{randomInt}}{{mobile}}
  • 登录后取 token 并注入请求头

    • 思路:在登录请求的 Tests 中将 access_token 写入环境变量;在需要认证的请求的 Pre-request Script 中读取并写入 Authorization 头。
    • Tests(登录请求):
      const json = pm.response.json();
      if (json.code === 200 && json.result) {
        pm.environment.set("access_token", json.result);
      }
      
    • Pre-request Script(其他请求):
      const token = pm.environment.get("access_token");
      if (token) {
        pm.request.headers.add({key:"Authorization", value:"Bearer " + token});
      }
      
    • 说明:也可在 Pre-request 中先调用登录接口获取 token 再设置(见下一节)。
  • 预请求中先调接口取数据并设置变量

    • 代码:
      const postReq = {
        url: 'https://postman-echo.com/post',
        method: 'POST',
        header: {'Content-Type': 'application/json'},
        body: { mode: 'raw', raw: JSON.stringify({ key: 'test' }) }
      };
      pm.sendRequest(postReq, (err, res) => {
        if (!err) {
          const data = res.json();
          pm.collectionVariables.set("echoKey", data.json.key);
        }
      });
      
    • 使用:后续请求用 {{echoKey}} 引用该值。

四 调试与批量运行

  • 调试
    • 使用 Postman Console(View → Show Postman Console)查看 console.log 输出与脚本错误,便于定位问题。
  • 批量与自动化
    • Collection Runner 中导入 CSV/JSON 数据文件进行数据驱动测试;结合环境变量/集合变量实现用例间的数据传递与复用。

五 最佳实践与排错

  • 作用域选择:优先使用 集合变量/环境变量 管理跨请求数据,避免滥用 全局变量;变量命名保持统一规范。
  • 性能与幂等:避免在 Pre-request 中执行耗时操作(如长轮询/大文件读取);必要时增加条件判断与缓存,减少对外部接口的频繁调用。
  • 头与参数管理:通过脚本集中管理 Authorization 等公共头;如需复用一组头,可结合 Headers Presets 提升效率。
  • 错误处理:为 pm.sendRequest 增加错误分支,必要时使用 try-catch 保护关键逻辑,防止脚本异常中断请求发送。

0