postman使用教程之变量

1,170 阅读3分钟

什么是变量

变量是计算机语言中能储存计算结果或能表示值的抽象概念。变量可以通过变量名访问。例如:如果一组请求里的URL值都是一样的,但是这个URL值后续可能会改变,此时就可以将URL保存为变量。后续URL值有变动时,只需要去修改变量的value即可。 url-var.jpeg reference-var.jpeg

注:postman会将环境变量和全局变量以字符串的形式保存。如果你要保存对象或数组形式,记得在保存前将其JSON.stringify() 并且在使用时JSON.parse() 一下。

变量作用域

postman支持Global、Collection、Environment、Data及Local变量域。

注:如果一个变量声明了2种不同的变量作用域,取最小作用域。

var-scope.jpeg

在实际使用中,不同变量作用域适用于不同场景的任务中:

  • Global variales:全局变量允许您访问集合、请求、测试脚本和环境之间的数据。全局变量可以在整个工作空间中使用。
  • Collection variables:集合变量可以在集合中的所有请求中使用,并且独立于环境,因此不要根据所选环境进行更改。如果只使用单个环境,例如用于验证/ URL详细信息,则可以使用集合变量。
  • Environment variables:环境变量允许您根据不同的环境定制处理,例如本地开发vs测试或生产。一次只能激活一个环境。 如果您只有一个环境,那么使用集合变量可能更有效,但是环境允许您指定基于角色的访问级别。
  • Local variables:局部变量是临时的,只能在请求脚本中访问。局部变量值的作用域仅限于单个请求或集合运行,当运行完成时不再可用。 如果您需要一个值来覆盖所有其他变量范围,但又不希望在执行结束后将该值持久化,那么局部变量是合适的。
  • Data variables:数据变量来自外部CSV和JSON文件,用于定义通过Newman或Collection Runner运行集合时可以使用的数据集。

定义变量

可以使用不同的方式定义不同作用域的变量。要从请求生成器中创建任意范围的变量,可以在地址、参数、头或正文中选择你需要的数据。

  1. 点击Set as variable > Set as a new variable。 set-as-var-prompt.jpeg set-as-a-new-var.jpeg
  2. 输入变量名,选择作用域后点击Set variable。 set-as-var-modal.jpeg
请及时删除不再使用的变量

定义全局和环境变量

点击左侧tab的Environment或点击右上角眼睛icon。均可创建和编辑全局和环境变量。 image.png

你也可以通过快捷键CMD/CTRL + ALT + E查看全局和环境变量

定义集合变量

image.png

也可以通过选择响应体中的值设置为某个变量的变量值 image.png

脚本中定义各类型变量

  • global variable
pm.globals.set("variable_key", "variable_value");
  • collection variable
pm.collectionVariables.set("variable_key", "variable_value");
  • environment variable
pm.environment.set("variable_key", "variable_value");
  • local variable
pm.variables.set("variable_key", "variable_value");
  • 删除变量
pm.environment.unset("variable_key");

访问变量

使用如下格式访问,变量可以使用在请求url、参数、头、授权、正文和头预设等地方。hover在变量名上可以看到变量当前值。

{{username}}

image.png 你可以在脚本中使用代表作用域级别的对象和.get方法来获取变量的当前值:

//access a variable at any scope including local
pm.variables.get("variable_key");
//access a global variable
pm.globals.get("variable_key");
//access a collection variable
pm.collectionVariables.get("variable_key");
//access an environment variable
pm.environment.get("variable_key");

日志打印变量值

console.log(pm.variables.get("variable_key"));

log-var-v8.jpeg