Postman Mock Server切换环境后响应没变化怎么办?

长孙秋香 阅读 58

我在用Postman Mock Server模拟接口时设置了开发和生产环境,但切换环境后Mock返回的数据还是原来的。比如访问/api/users,不管选哪个环境都返回固定JSON。尝试过修改集合变量、重启Mock服务都没用,是不是哪里配置错了?

这是我的Mock模板代码:


{
  "users": [
    {
      "id": {{randomInt 1 100}},
      "name": "{{random}}",
      "environment": "{{environment}}" // 这里应该根据环境变量显示dev/prod
    }
  ]
}

环境变量明明在Postman变量面板里设置了environment: dev,但返回数据里一直是空字符串…

我来解答 赞 11 收藏
二维码
手机扫码查看
2 条解答
玉银 Dev
Postman Mock Server的环境变量不是通过集合变量面板设置的,那玩意儿在Mock服务里根本读不到。你得在Mock模板里用pm.environment.get()方法取环境变量,直接贴代码:

{
"users": [
{
"id": {{randomInt 1 100}},
"name": "{{random}}",
"environment": "{{environment}}" // 这里应该用pm.environment.get('environment')
}
]
}


正确写法应该是这样:

{
"users": [
{
"id": {{randomInt 1 100}},
"name": "{{random}}",
"environment": "{{pm.environment.get('environment')}}" // 这才是正确读环境变量的方式
}
]
}


另外记得在Mock Server设置页面把两个环境都绑定到这个Mock服务,光建环境不绑定等于白搭。下次遇到这种问题直接console.log(pm.environment)看变量列表就行。
点赞 6
2026-02-03 17:42
司徒红佑
问题在于Mock Server模板没法直接用Postman的环境变量。你需要把变量值在请求发送前通过Pre-request Script写到集合变量里,然后再让模板读取集合变量。

试试这个Pre-request Script:
pm.collectionVariables.set("env", pm.environment.get("environment") || "dev");


然后更新模板代码里的{{environment}}{{env}}。记得重启Mock Server生效。
点赞 3
2026-01-29 02:01