必须手动选中环境,否则{{base_url}}不解析;环境变量优先级高于全局变量;base_url值勿加末尾斜杠;网页版无法访问localhost等内网地址。

直接用 {{base_url}} 就行,但必须配对设置环境变量或全局变量,且请求前要手动切换环境——否则变量不生效,URL 会变成字面量 {{base_url}}/login 报 404 或 DNS 错误。
为什么 {{base_url}} 写了却发不出请求
常见错误是只在环境里定义了 base_url,但没在右上角下拉菜单中**手动选中该环境**。Postman 不会自动匹配或默认启用任一环境,未选中时所有 {{xxx}} 都原样保留,导致请求发向一个不存在的域名。
- 检查右上角环境选择器是否显示你刚创建的环境名(如
test),而不是No environment - 鼠标悬停在 URL 输入框里的
{{base_url}}上,如果弹出提示含environment字样,说明识别成功;若提示undefined或无反应,就是环境没选对或变量名拼错 - 变量名区分大小写:
Base_URL和base_url是两个变量
base_url 放环境变量还是全局变量
取决于使用场景:
Postman 12.27.7 Windows x64 官方安装包,适用于 API 设计、调试、测试与协作。该系列包含 Enterprise 云端性能测试静态 IP 出口能力,以及接口规范标签管理改进,适合受限网络测试与规范资源组织场景。
- 多套环境(dev/test/prod)→ 必须用**环境变量**:每个环境里设不同的
base_url值,切换环境即切换域名 - 全项目共用一个固定地址(比如本地联调始终用
http://localhost:8080)→ 可用**全局变量**,但注意它会污染所有集合,协作时容易误改 - 千万别把
base_url同时塞进环境变量和全局变量——按优先级Environment > Global,环境变量会覆盖全局,但调试时容易混淆来源
带端口、协议、路径前缀的 base_url 怎么写
变量值里**不要加末尾斜杠**,否则拼接后变成 https://api.com//login(双斜杠),部分服务会 400。正确写法:
- 环境变量中设
base_url = https://api.test.com(不含/) - 请求 URL 写成
{{base_url}}/login或{{base_url}}/v1/users - 如果接口分模块,建议再拆一层变量,比如
user_api = {{base_url}}/v1/user,避免每个请求都重复拼接 - 协议+域名+端口必须完整,
localhost:3000缺少http://会导致请求失败(浏览器同源策略限制)
脚本里动态生成 base_url 的风险
有人在 Pre-request Script 里用 pm.environment.set("base_url", ...) 拼接 IP 和端口,这在桌面版可行,但在 Postman 网页版会失效——因为网页版的请求由服务端代理发出,127.0.0.1 指的是服务器本机,不是你的电脑。
- 网页版无法访问
localhost、192.168.x.x等内网地址,除非后端已配置公网可访问入口 - 动态拼接适合自动化场景(如 CI 中注入环境地址),日常调试强烈建议直接在环境变量里写死完整 URL
- 如果真要动态,优先用环境变量组合:
host+port+path_prefix,再在脚本里pm.environment.set("base_url", `http://${host}:${port}${path_prefix}`),但务必确认运行环境支持
最常被忽略的一点:环境变量修改后,必须点击右上角环境选择器旁的 Save 按钮(不是仅输完回车),否则变更不会持久化,重启 Postman 后丢失。
















