登录
推荐 文章 Go 技术 课程 下载 专题 AI
首页 >  文章 >  软件教程

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 仍显示在表格内。

区分环境编辑区和全局入口
操作示意图:环境 demo 中的变量与底部 Globals 入口属于不同范围。

再点击工作台底部的“Globals”,新增同名 scope_probe,Value 填 global-demo。这里有意使用同名变量,方便观察覆盖;真实项目不必刻意制造同名。现在两个入口各有一条记录,修改其中一个不会自动修改另一个。

范围示例值归属
Environmentenvironment-demodemo 环境
Globalglobal-demo当前工作区

“全局”不是整个账号在所有工作区之间通用。开发地址、测试地址这类跟环境切换的配置,放在对应环境更容易维护;只与某个集合有关的常量,也可以考虑集合范围,避免扩大影响面。

2. 在请求中看实际引用的是哪一层

新建一个练习请求,在地址栏填写 https://example.invalid/{{scope_probe}}。这个地址仅用于观察变量展开,.invalid 不是真实接口,不需要点击 Send。通过右上方环境选择器选中 demo,再点击“Variables”打开变量面板,或将指针停留在地址栏的变量引用上。

展示请求变量展开来源
操作示意图:选择 demo 环境后,引用值标明来自环境范围。

在没有其他同名覆盖的前提下,应该看到环境来源及 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,便于之后辨认归属。

显示环境导出入口与全局入口区别
操作示意图:从 demo 环境的更多操作选择 Export,导出对象是该环境。

需要保存全局变量时,改从“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/

声明:本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>