当前位置: 首页 > news >正文

postman 调用接口设置全局变量

在 Postman 中设置全局变量(Global Variables) 可以实现变量在整个 Postman 工作空间(所有集合、请求、环境) 的复用,常用于存储固定值(如基础 URL、API 密钥)或动态值(如登录后的 Token)。以下是详细的设置方法和使用场景:

一、全局变量的核心作用

  • 跨集合 / 请求复用:无需在每个请求中重复输入相同值(如baseUrlappKey)。
  • 动态传递数据:从一个请求的响应中提取值(如 Token),供后续所有请求使用。
  • 简化维护:修改全局变量后,所有引用该变量的请求会自动生效,无需逐个修改。

二、4 种常用的全局变量设置方法

方法 1:手动设置(适合固定值,如基础 URL)

适用于存储不会频繁变化的值(如baseUrl = https://api.example.com),步骤如下:

  1. 打开 Postman,点击左上角的 “环境和全局变量” 图标(🔄 形状,位于 “发送” 按钮左侧),或通过顶部菜单 “设置”→“全局变量” 进入面板。
  2. 在 “全局变量” 面板中,点击 “添加” 按钮,输入变量的:
    • Key:变量名(如baseUrlapiKey,建议用英文 + 驼峰命名)。
    • Initial Value:初始值(会同步到 Postman 云端 / 团队共享,适合公开值)。
    • Current Value:当前值(仅本地生效,适合敏感值如tokenpassword)。
  3. 点击 “保存”(💾 图标),全局变量立即生效。

示例:设置baseUrl = https://api.example.com,后续所有请求的 URL 可直接写为{{baseUrl}}/user/login

方法 2:通过 Pre-request Script 设置(请求发送前动态生成)

适用于需要在请求发送前动态生成变量的场景(如生成时间戳、随机数、签名),脚本会在请求发送前执行。

  1. 打开任意请求,切换到 “Pre-request Script” 标签页(请求参数下方)。
  2. 输入 JavaScript 脚本,使用pm.globals.set("变量名", "变量值")设置全局变量,示例:

    javascript

    运行

    // 1. 生成当前时间戳(毫秒级),存入全局变量timestamp
    const timestamp = new Date().getTime();
    pm.globals.set("timestamp", timestamp);// 2. 生成随机字符串,存入全局变量nonce
    const nonce = Math.random().toString(36).substring(2, 10);
    pm.globals.set("nonce", nonce);// 3. 验证变量是否设置成功(可选,通过控制台查看)
    console.log("全局变量timestamp:", pm.globals.get("timestamp"));
    
  3. 点击 “发送” 请求,脚本会自动执行并设置全局变量。
  4. 验证:进入 “全局变量” 面板,或通过控制台(底部 “Console” 标签)查看变量值。
方法 3:通过 Tests 脚本设置(从响应中提取值,最常用)

这是最核心的场景:从一个请求的响应中提取数据(如登录接口返回的token),存入全局变量,供后续所有请求使用(如接口鉴权)。

以 “登录接口提取 Token” 为例,步骤如下:

  1. 发送登录请求(如POST {{baseUrl}}/user/login),假设响应是 JSON 格式:

    json

    {"code": 200,"message": "登录成功","data": {"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", // 需要提取的Token"userId": 12345}
    }
    
  2. 切换到该请求的 “Tests” 标签页(响应下方),输入脚本提取token并设置为全局变量:

    javascript

    运行

    // 1. 解析响应JSON(前提是响应格式为JSON)
    const responseJson = pm.response.json();// 2. 提取data.token的值
    const token = responseJson.data.token;// 3. 将token存入全局变量(关键步骤)
    pm.globals.set("token", token);// 4. 验证:打印变量值到控制台,或断言变量不为空(可选)
    console.log("全局Token:", pm.globals.get("token"));
    pm.test("Token提取成功", () => {pm.expect(token).not.to.be.empty; // 断言Token不为空
    });
    
  3. 点击 “发送” 登录请求,Tests 脚本会在响应返回后执行,自动将token存入全局变量。
  4. 后续请求使用 Token:在请求头(如Authorization: Bearer {{token}})或参数中直接引用{{token}}即可。
方法 4:导入 / 导出全局变量(团队共享)

如果需要将全局变量共享给团队成员,或迁移到其他设备,可以通过导入 / 导出 JSON 文件实现:

  • 导出全局变量

    1. 进入 “全局变量” 面板,点击右上角的 “导出” 按钮(↓ 图标)。
    2. 选择保存路径,生成.postman_globals.json文件(包含所有全局变量的 Key 和 Initial Value)。
  • 导入全局变量

    1. 进入 “全局变量” 面板,点击右上角的 “导入” 按钮(↑ 图标)。
    2. 选择团队共享的.postman_globals.json文件,确认导入后变量立即生效。

三、全局变量的使用方式

设置好全局变量后,在 Postman 的任意位置(URL、请求头、参数、Body)都可以通过 {{变量名}} 引用,示例:

使用场景示例写法说明
URL{{baseUrl}}/user/{{userId}}拼接基础 URL 和用户 ID
请求头Authorization: Bearer {{token}}携带 Token 进行鉴权
路径参数键:id,值:{{userId}}路径参数引用全局变量
JSON 请求体"phone": "{{userPhone}}"请求体中引用全局变量

四、注意事项

  1. 变量作用域优先级:如果全局变量与环境变量(Environment Variables)同名,环境变量会覆盖全局变量(环境变量作用域更具体)。
  2. 敏感值保护:敏感信息(如tokenpassword)建议只存放在 Current Value 中(本地生效,不同步到云端),避免泄露。
  3. 调试技巧:若变量引用失效,可通过以下方式排查:
    • 查看 “全局变量” 面板,确认变量已保存且值正确。
    • 打开底部 “Console”,输入pm.globals.get("变量名")打印变量值,检查是否存在。
    • 检查变量引用格式是否正确(必须是{{变量名}},不能遗漏大括号)。

通过以上方法,你可以灵活地在 Postman 中设置和使用全局变量,大幅提升接口调试效率,尤其是在多请求联动的场景(如 “登录→获取用户信息→修改用户资料”)中非常实用。

编辑分享

手动设置全局变量时,如何将全局变量传递给其他请求?

如何在Postman中导入和导出全局变量?

在Pre-request Script中,如何确保生成的变量不会与其他脚本冲突?

http://www.dtcms.com/a/503151.html

相关文章:

  • Lua协程coroutine库用法
  • 若依字典原理---后端
  • SpringBoot 接入 Prometheus + Grafana
  • 自己有网站怎么做优化实时热榜
  • 基于SpringBoot的“基于数据安全的旅游民宿租赁系统”的设计与实现(源码+数据库+文档+PPT)
  • 海宁公司做网站wordpress编辑器存内容
  • 旅游管理系统|基于SpringBoot和Vue的旅游管理系统(源码+数据库+文档)
  • DAQ系统混合方案与设计模式详解
  • 【Linux系统编程】3. Linux基本指令(下)
  • sql练习-5
  • 做网站审批号必须要wix做网站的建议
  • YAML的Value表示
  • 如何在Gitee和GitHub上部署SSH公钥
  • 成都高新网站建设美图秀秀在线制作
  • Flutter Isolate的使用
  • 从 JDK 8 到 JDK 23:HotSpot 垃圾回收器全景演进与深度剖析
  • 深圳网站建设jm3q网站是公司域名是个人可以吗
  • 【深度学习新浪潮】多模态大模型在图像理解领域的技术进展与实践
  • wordpress 分类菜单高亮外贸seo软件
  • 百度面试题解析:Zookeeper、ArrayList、生产者消费者模型及多线程(二)
  • excel绘制折线图
  • 数据结构(c++版):二叉树的实现
  • 厦门手机网站建设wordpress mkv格式
  • spiderdemo题解系列——第2篇:请求头检测挑战(第1题)
  • 数据事件及数据查询——东方财富掘金量化速成学习(python)
  • 数据库做网站wordpress ip地址
  • 上海做网站及推广网站关键词怎么优化
  • 利用汽车雷达测试系统模拟多径效应——论文阅读
  • 【大语言模型】—— 自注意力机制及其变体(交叉注意力、因果注意力、多头注意力)的代码实现
  • TensorFlow2 Python深度学习 - 生成对抗网络(GAN)简介