环境变量的值在 Postman 中重置为 null

Value of an environment variable is reset to null in Postman

我有一个登录请求 returns 一个令牌,该令牌通过在 Postman - 测试选项卡中添加的以下脚本保存到环境变量中:

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("token_abc", jsonData.access_token);

另一个请求在授权 header 中使用该令牌作为 Bearer {{token_abc}}

但是,似乎令牌仅对 one-time 使用有效:发送请求 #2 后,token_abc 的值在环境变量 - 当前中重置为 null值。

这可能是什么原因造成的?因为这不是应用程序通常的行为方式 - 令牌应该在 24 小时内有效。是否有我在某处看不到的邮递员设置?我正在使用 Postman 8.6.1.

出于某种我不知道的原因,邮递员沙箱中有 2 个“邮递员”对象,您可以使用它们来设置环境变量。

  • postman
  • pm

两者都可以在邮递员的变量作用域上调用一个函数来设置变量。从我在讨论各种邮递员问题的论坛上收集到的信息来看,不鼓励使用 postman 对象,转而使用 pm.

看看这是否有帮助:

//check if you get the value you expected first
console.log(jsonData.access_token)
pm.environment.set('token_abc', jsonData.access_token)

由于您的变量在某处被重置,您的脚本中必须有代码对此负责。您提到变量在请求 #2 后被重置,因此首先要查看的是第二个请求的“测试”选项卡。您可以使用 console.log(value) 将该变量的值输出到该脚本中不同位置的控制台,以便进一步查明它在代码中重置的确切位置。