Postman中应使用环境变量替代硬编码IP:右上角齿轮→Manage Environments→Add创建环境(如dev-local),添加host、port等变量,URL写为http://{{host}}:{{port}}/{{base_path}}/user/login,通过下拉切换环境实现一键批量更新。

Postman 里直接填 http://192.168.1.100:8080/api/user 能发请求,但硬编码 IP 地址会让环境切换、协作、维护变得极其脆弱——改一个地址要翻遍所有请求,漏改一处就报 502 Bad Gateway 或 Connection refused。真正靠谱的做法是把 IP 和端口抽成变量,用环境隔离 + 全局复用。
怎么在 Postman 里创建带 IP 的环境变量
环境变量是按“环境”隔离的,适合不同测试环境(dev/staging/prod)使用不同 IP。操作路径:右上角齿轮 → Manage Environments → Add → 填写环境名(如 dev-local),再添加变量:
-
host=127.0.0.1(或你的真实内网 IP,比如192.168.5.20) -
port=3000(后端服务端口) -
base_path=api(可选,统一前缀)
之后在请求 URL 栏写成:http://{{host}}:{{port}}/{{base_path}}/user/login。切换环境下拉框就能秒切整套地址,不用点开每个请求去改。
全局变量 vs 环境变量:什么时候该用哪个
全局变量对所有环境生效,适合跨环境不变的值;环境变量只在当前环境生效,适合 IP、token、数据库名这类随环境变化的配置。
- 用全局变量存
api_version(如v1)或protocol(https/http),避免重复定义 - 千万别把
host设成全局变量——开发用localhost,测试用10.20.30.40,强行共用会导致请求发错地方 - 如果多个环境共用同一台机器(只是端口不同),可以设全局
host+ 环境级port,更灵活
Pre-request Script 动态拼接 URL,避免手写冗长地址
当接口路径嵌套深、前缀多变(比如 /sys/admin/user、/sys/tenant/config),手动拼 {{host}}:{{port}}/{{base_path}}/xxx 容易出错。可以在文件夹或请求的 Pre-request Script 里自动组装:
Postman 12.27.7 Windows x64 官方安装包,适用于 API 设计、调试、测试与协作。该系列包含 Enterprise 云端性能测试静态 IP 出口能力,以及接口规范标签管理改进,适合受限网络测试与规范资源组织场景。
const host = pm.environment.get("host");
const port = pm.environment.get("port");
const base = pm.environment.get("base_path");
const model = "/sys/admin";
pm.environment.set("url_prefix", `http://${host}:${port}/${base}${model}`);
然后 URL 栏直接写:{{url_prefix}}/list。这样改模块路径只需动一行 model 变量,整个文件夹下的请求都自动更新。
常见错误和绕不开的坑
IP 请求失败不一定是地址写错了,这些细节卡住的人最多:
- 本地服务没起来,或者监听的是
127.0.0.1,但 Postman 用的是localhost——虽然通常等价,但在某些 Docker 或防火墙配置下会失败,统一用127.0.0.1更稳 - 后端服务绑定
0.0.0.0,但防火墙拦了端口(尤其 Windows),telnet 192.168.1.100 8080连不通就别怪 Postman - URL 中混用了
http和https,而服务只支持其一;Postman 不会自动降级,https://192.168.1.100:8443打不开时先试试http - 变量名拼错或大小写不一致:
{{Host}}≠{{host}},Postman 不报错,只静默渲染为空字符串,结果发到http://:3000/api这种非法地址
变量替换是否生效,最简单的验证方式:在请求发送前,点开 Console(View → Show Postman Console),看实际发出的 URL 是什么——别靠猜,要看真实请求链路。










