postman 调用接口设置全局变量
在 Postman 中设置全局变量(Global Variables) 可以实现变量在整个 Postman 工作空间(所有集合、请求、环境) 的复用,常用于存储固定值(如基础 URL、API 密钥)或动态值(如登录后的 Token)。以下是详细的设置方法和使用场景:
一、全局变量的核心作用
- 跨集合 / 请求复用:无需在每个请求中重复输入相同值(如
baseUrl
、appKey
)。 - 动态传递数据:从一个请求的响应中提取值(如 Token),供后续所有请求使用。
- 简化维护:修改全局变量后,所有引用该变量的请求会自动生效,无需逐个修改。
二、4 种常用的全局变量设置方法
方法 1:手动设置(适合固定值,如基础 URL)
适用于存储不会频繁变化的值(如baseUrl = https://api.example.com
),步骤如下:
- 打开 Postman,点击左上角的 “环境和全局变量” 图标(🔄 形状,位于 “发送” 按钮左侧),或通过顶部菜单 “设置”→“全局变量” 进入面板。
- 在 “全局变量” 面板中,点击 “添加” 按钮,输入变量的:
- Key:变量名(如
baseUrl
、apiKey
,建议用英文 + 驼峰命名)。 - Initial Value:初始值(会同步到 Postman 云端 / 团队共享,适合公开值)。
- Current Value:当前值(仅本地生效,适合敏感值如
token
、password
)。
- Key:变量名(如
- 点击 “保存”(💾 图标),全局变量立即生效。
示例:设置
baseUrl = https://api.example.com
,后续所有请求的 URL 可直接写为{{baseUrl}}/user/login
。
方法 2:通过 Pre-request Script 设置(请求发送前动态生成)
适用于需要在请求发送前动态生成变量的场景(如生成时间戳、随机数、签名),脚本会在请求发送前执行。
- 打开任意请求,切换到 “Pre-request Script” 标签页(请求参数下方)。
- 输入 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"));
- 点击 “发送” 请求,脚本会自动执行并设置全局变量。
- 验证:进入 “全局变量” 面板,或通过控制台(底部 “Console” 标签)查看变量值。
方法 3:通过 Tests 脚本设置(从响应中提取值,最常用)
这是最核心的场景:从一个请求的响应中提取数据(如登录接口返回的token
),存入全局变量,供后续所有请求使用(如接口鉴权)。
以 “登录接口提取 Token” 为例,步骤如下:
- 发送登录请求(如
POST {{baseUrl}}/user/login
),假设响应是 JSON 格式:json
{"code": 200,"message": "登录成功","data": {"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", // 需要提取的Token"userId": 12345} }
- 切换到该请求的 “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不为空 });
- 点击 “发送” 登录请求,Tests 脚本会在响应返回后执行,自动将
token
存入全局变量。 - 后续请求使用 Token:在请求头(如
Authorization: Bearer {{token}}
)或参数中直接引用{{token}}
即可。
方法 4:导入 / 导出全局变量(团队共享)
如果需要将全局变量共享给团队成员,或迁移到其他设备,可以通过导入 / 导出 JSON 文件实现:
导出全局变量:
- 进入 “全局变量” 面板,点击右上角的 “导出” 按钮(↓ 图标)。
- 选择保存路径,生成
.postman_globals.json
文件(包含所有全局变量的 Key 和 Initial Value)。
导入全局变量:
- 进入 “全局变量” 面板,点击右上角的 “导入” 按钮(↑ 图标)。
- 选择团队共享的
.postman_globals.json
文件,确认导入后变量立即生效。
三、全局变量的使用方式
设置好全局变量后,在 Postman 的任意位置(URL、请求头、参数、Body)都可以通过 {{变量名}}
引用,示例:
使用场景 | 示例写法 | 说明 |
---|---|---|
URL | {{baseUrl}}/user/{{userId}} | 拼接基础 URL 和用户 ID |
请求头 | Authorization: Bearer {{token}} | 携带 Token 进行鉴权 |
路径参数 | 键:id ,值:{{userId}} | 路径参数引用全局变量 |
JSON 请求体 | "phone": "{{userPhone}}" | 请求体中引用全局变量 |
四、注意事项
- 变量作用域优先级:如果全局变量与环境变量(Environment Variables)同名,环境变量会覆盖全局变量(环境变量作用域更具体)。
- 敏感值保护:敏感信息(如
token
、password
)建议只存放在 Current Value 中(本地生效,不同步到云端),避免泄露。 - 调试技巧:若变量引用失效,可通过以下方式排查:
- 查看 “全局变量” 面板,确认变量已保存且值正确。
- 打开底部 “Console”,输入
pm.globals.get("变量名")
打印变量值,检查是否存在。 - 检查变量引用格式是否正确(必须是
{{变量名}}
,不能遗漏大括号)。
通过以上方法,你可以灵活地在 Postman 中设置和使用全局变量,大幅提升接口调试效率,尤其是在多请求联动的场景(如 “登录→获取用户信息→修改用户资料”)中非常实用。
编辑分享
手动设置全局变量时,如何将全局变量传递给其他请求?
如何在Postman中导入和导出全局变量?
在Pre-request Script中,如何确保生成的变量不会与其他脚本冲突?