Postman集合变量通过右键集合→Edit→Variables页添加,仅对该集合及子文件夹生效,优先级低于环境变量;适合存放集合内复用的非环境敏感值,如版本号、测试ID等。

Postman 给集合添加变量,最直接的方式是右键集合 → Edit → 切换到 Variables 标签页,填入 Name 和 Initial Value 即可生效。不需要写脚本、不依赖环境切换,只要变量名写对,所有该集合下的请求都能用 {{variable_name}} 引用。
怎么在 Postman UI 里创建集合变量
集合变量只对所属集合及其子文件夹里的请求生效,和当前选中的环境无关。操作路径非常固定:
- 在左侧 Collections 面板中,右键目标集合(比如 “用户服务”)
- 点击 Edit
- 顶部标签页切换到 Variables
- 在表格中新增一行:填
Name(如base_url),Initial Value(如https://api.dev.example.com),Current Value会自动同步(也可手动改) - 点 Save
集合变量和环境变量混用时,哪个优先级更高
Postman 变量有明确的解析优先级顺序:
局部变量>环境变量>全局变量>集合变量。这意味着:- 如果你同时定义了环境变量
base_url和集合变量base_url,且当前启用了某个环境,那么请求中{{base_url}}取的是环境变量的值 - 集合变量不会“覆盖”环境变量,它只是后备选项;想强制用集合变量,就得把环境变量删掉或切到
No Environment - 常见踩坑:在调试时发现变量没按预期替换,先检查右上角环境选择器是否意外激活了某个环境
在脚本里读写集合变量要注意什么
集合变量支持通过
pm.collectionVariablesAPI 动态设置,但必须注意作用域限制:
Postman 12.27.7下载Postman 12.27.7 Windows x64 官方安装包,适用于 API 设计、调试、测试与协作。该系列包含 Enterprise 云端性能测试静态 IP 出口能力,以及接口规范标签管理改进,适合受限网络测试与规范资源组织场景。
-
pm.collectionVariables.set("token", "abc123")只在当前集合内有效,其他集合看不到这个token -
pm.collectionVariables.get("timeout_ms")返回的是Current Value,不是Initial Value;如果脚本里反复 set,值会持续覆盖 - 不能在 Pre-request Script 或 Tests 中读取尚未定义的集合变量,否则返回
undefined,建议加空值判断:const timeout = pm.collectionVariables.get("timeout_ms") || 5000; - 集合变量不支持加密,敏感值(如密钥)别放这里,优先走环境变量 + 环境隔离
集合变量适合放哪些值
集合变量的核心价值是“模块内复用”,不是跨环境管理。典型适用场景包括:
- 该集合专属的版本路径,比如
version=v2,用于拼接{{base_url}}/api/{{version}}/users - 集合内通用的测试账号 ID,如
test_user_id=10086,避免每个请求 Body 里重复写死 - 接口间依赖的中间值,比如第一个请求返回的
order_id,用脚本存为集合变量,后续请求直接引用 - 不随环境变化但需统一维护的配置,例如
retry_count=3,供所有集合内请求的重试逻辑使用
真正需要区分 dev/test/prod 的值(比如域名、认证方式),还是得交给环境变量——集合变量在这里容易造成配置漂移,后期维护成本反而上升。
- 如果你同时定义了环境变量










