Postman 怎样区分当前环境变量和全局变量
来源:17golang原创
时间:2026-11-11 21:42:21 352浏览 收藏
Postman 环境变量属于某个环境,只有选中的活动环境参与当前请求;全局变量属于当前工作区,可被其中不同集合与环境使用。同名变量同时存在时,环境范围比全局范围更窄,因此通常会覆盖全局值;但数据变量、局部变量等更窄范围还可能继续覆盖它。区分时同时看“保存在哪一层”和“请求最终解析了哪一个值”。
官方地址:https://www.postman.com/
下面用不含凭据的 scope_probe 做练习,先分别创建,再查看引用来源,最后按范围导出。当前文档使用 Value、Shared Value 等名称,旧教程的 Current Value 并不等于“环境变量范围”。图片是原创操作示意图,菜单位置和中文译名可能随版本变化。
1. 在两个入口各存一条可辨认的值
打开“Environments → 你的练习环境 demo”,在表格底部的 Add variable 中填写变量名 scope_probe,Value 填 environment-demo,保持该变量启用。若尚无练习环境,先新建一个;团队环境需要相应编辑权限。变量修改会自动保存,离开前确认名称和 Value 仍显示在表格内。

再点击工作台底部的“Globals”,新增同名 scope_probe,Value 填 global-demo。这里有意使用同名变量,方便观察覆盖;真实项目不必刻意制造同名。现在两个入口各有一条记录,修改其中一个不会自动修改另一个。
| 范围 | 示例值 | 归属 |
|---|---|---|
| Environment | environment-demo | demo 环境 |
| Global | global-demo | 当前工作区 |
“全局”不是整个账号在所有工作区之间通用。开发地址、测试地址这类跟环境切换的配置,放在对应环境更容易维护;只与某个集合有关的常量,也可以考虑集合范围,避免扩大影响面。
2. 在请求中看实际引用的是哪一层
新建一个练习请求,在地址栏填写 https://example.invalid/{{scope_probe}}。这个地址仅用于观察变量展开,.invalid 不是真实接口,不需要点击 Send。通过右上方环境选择器选中 demo,再点击“Variables”打开变量面板,或将指针停留在地址栏的变量引用上。

在没有其他同名覆盖的前提下,应该看到环境来源及 environment-demo。随后将环境选择器切换到不选环境的状态,再查看同一引用;若没有集合、数据或局部范围干预,才会使用 global-demo。这个对照关注解析来源,不依赖服务器是否可连接。
如果结果与预期不同,先检查活动环境名称、变量名拼写和可用状态,再看该集合或请求脚本是否定义同名变量。单纯把一个环境变量的值清空或取消启用,并不是可靠的“回退全局”试验;用切换活动环境来做本例对照更明确。
需要在脚本里精确区分时,可以使用下面的读取方式。代码用于解释接口,本文未执行,也不要求为观察界面而发送请求:
// 指定环境范围,读取当前活动环境的变量。
const environmentValue = pm.environment.get("scope_probe");
// 指定全局范围,读取当前工作区的全局变量。
const globalValue = pm.globals.get("scope_probe");
// 按作用域规则读取有效值,可能被更窄范围覆盖。
const resolvedValue = pm.variables.get("scope_probe");
这些读取不会把一个范围的变量迁移到另一个范围。尤其不要把 pm.variables.set 当成保存环境变量的写法,它定义的是局部变量;需要更新活动环境时用 pm.environment.set。
3. 导出时保留所属范围并分开命名
如果准备把练习数据保存成文件,进入“Environments → demo → 更多操作(View more actions)→ Export”。导出的对象是 demo 环境,文件名建议写成 demo-environment.json,便于之后辨认归属。

需要保存全局变量时,改从“Globals → 工作台右上角 Export”操作,使用 demo-globals.json 这样的独立文件名。把两份文件分别交接,并说明哪份是环境、哪份是全局;不要仅凭里面存在相同键名就认为它们是同一份配置,也不要通过手改 JSON 结构来强行混合。
本例文件名是整理建议,不是 Postman 强制要求。下载后查看文件所属对象是否正确,再决定是否交接;不要假定某次导出等价于全部本地私有值与共享值的完整备份。使用真实项目时,先确保可交接内容不含凭据。本练习只用普通标记,不需要导入或导出令牌。
| 要改变的内容 | 应去的入口 |
|---|---|
| 切换开发、测试等配置组 | 环境选择器 |
| 修改 demo 的变量 | Environments → demo |
| 修改工作区全局变量 | Globals |
| 查某个引用的实际来源 | 请求中的变量引用或 Variables 面板 |
常见问题
Current Value、Local Value 是作用域吗?
不是同一维度。范围描述变量归属,值的本地或共享属性描述谁能使用某个值。环境变量和全局变量都可能有本地值,不能看到“本地”就认定它是脚本局部变量。
为什么改了全局变量,请求地址仍然不变?
通常要先看是否存在同名的环境变量或更窄范围覆盖。直接读取全局值和请求自动解析得到的值,可以不同。
团队同事为什么看不到刚改的值?
本地修改不一定共享。当前 Postman 默认使用你本地实例的值,分享值需要相应入口与权限;仅切换活动环境不会替你完成共享。
变量范围说明:https://learning.postman.com/docs/use/send-requests/variables/variables/
变量创建与导出入口:https://learning.postman.com/docs/use/send-requests/variables/define-variables
环境变量编辑说明:https://learning.postman.com/docs/use/send-requests/variables/environment-variables/
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
457 收藏
-
278 收藏
-
167 收藏
-
155 收藏
-
274 收藏
-
320 收藏
-
113 收藏
-
139 收藏
-
150 收藏
-
315 收藏
-
164 收藏
-
357 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习