【问题标题】:What are the "local" variables in Postman?Postman 中的“局部”变量是什么?
【发布时间】:2018-03-02 13:46:12
【问题描述】:

Postman 的文档还有很多不足之处。他们在Variables page 中说:

以下范围可供您使用:

  1. 全球
  2. 环境
  3. 本地
  4. 数据

有关于全局和环境范围的信息,我相信“数据”范围是来自收集运行的数据。但是什么是“局部”变量?

因为我希望有一个动态计算的变量,用于请求,然后丢弃。全局变量和环境变量都是持久的。

【问题讨论】:

  • 这些答案都没有,有帮助吗?请标记答案或回复原因....谢谢。

标签: postman


【解决方案1】:

根据Postman Quick Reference Guide 局部变量仅在设置它们的请求(或收集运行)中可用。因此它们被用于请求或收集运行,然后被丢弃。

何时使用

将数据从请求前脚本传递到请求或测试或请求之间。

Postman 与 Collection Runner / Newman 的行为有点不同,所以在使用前请确保您了解它们的工作原理!

设置

pm.variables.set('myVariable', MY_VALUE);

获取

pm.variables.get('myVariable', MY_VALUE);

删除

一旦执行测试/收集运行完成,局部变量就会自动删除。

【讨论】:

  • 我可以在预请求脚本中设置一个局部变量,然后在同一个请求的授权部分访问它吗?如果有,怎么做?
  • 只需使用 pm.variables.set 并像使用花括号语法的任何其他变量一样使用它。
  • 我试过了。它适用于请求的“参数”部分,但不适用于“授权”部分。
  • 请分享一个例子。
【解决方案2】:

局部变量是您在测试部分中使用的变量。 你甚至可以使用 'let' 声明,因为它是用 javascript 编码的...... 即:

let jsonData;
jsonData = JSON.parse(responseBody);

或使用 var 进行声明。

var jsonData = JSON.parse(responseBody);

不过,您可以使用

即时擦除全局变量
pm.environment/global.unset(<variable>)

详情请见here

【讨论】:

  • 好吧,“本地”这个词并没有真正出现在那个页面上。 :) 无论如何,我希望有一种变量可以在我的请求中使用。据我所知,本地JS变量不能在那里使用。
  • 我不确定...我是 javascript 的初学者(我开始使用 Postman),但我在我的预请求和测试脚本中使用了“本地”变量,它可以工作美好的。本地 JS 变量是特殊的吗?也许你需要导入一些东西?
  • 我同意 Vilx 并希望它们意味着某种可以独立于环境使用的变量。但我猜他们的意思是使用 JavaScript 声明的变量。太糟糕了。
  • @A.Joly - 所以,我想做的是制作一个预请求脚本,它会进行一些神奇的计算,然后将另一个参数附加到请求正文(这是一个 POST 请求)。不幸的是,请求变量在预请求脚本中是只读的。幸运的是,请求正文可以引用 {{some_variable}} 之类的变量。可以使用“全局”和“环境”变量(我已经使用了一堆用于在环境之间切换),这些变量可能会受到预请求脚本的影响。
  • 不幸的是,它们都是相当全球性和永久性的,而我的神奇计算的结果是暂时的。
猜你喜欢
  • 2021-05-21
  • 2014-08-04
  • 2017-12-19
  • 1970-01-01
  • 2019-01-22
  • 2016-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多