Postman里支持5种不同的变量作用域
- Global
- Collection
- Environment
- Data
- Local
关系如下图, 作用域小的变量会屏蔽掉更大作用域中同名的变量, 比如在全局作用域和局部作用域同时定义了username,那么在提交请求时,将使用局部作用域中的username的值.
下面分别介绍创建方法
全局变量
全局变量可以在collections, requests, test scripts, and environments之间共享数据,也就是说,属于整个workspace.
全局变量的创建方式如下
在脚本中定义全局变量
pm.globals.set("variable_key", "variable_value");
集合变量
集合变量在所在的集合内有效,独立于环境变量
在创建了Collection之后, 就可以添加集合变量了, 定义方式如下
在脚本中定义集合变量
pm.collectionVariables.set("variable_key", "variable_value");
环境变量
环境变量使我们可以针对不同的测试环境,定义各自的数据,我们可以定义多套环境,每套环境下定义各自的变量,执行测试时,只能选择一套环境
在脚本中定义环境变量
pm.environment.set("variable_key", "variable_value");
在脚本中删除环境变量
pm.environment.unset("variable_key");
数据变量
数据变量来自与外部文件,比如json或CSV文件, 用于定义我们通过Newman或Collection Runner执行Collection时候使用的数据集
不能在Postman里定义数据变量,因为数据变量是在外部文件中定义的,在测试脚本中我们却可以使用pm.iterationData.get("variable_name")访问数据变量
局部变量
局部变量是临时的,在执行期间有效, 在js脚本中访问
在脚本中定义局部变量
pm.variables.set("variable_key", "variable_value");
五种变量作用域的关系图如下