postman Variables变量的详解与应用
变量
变量类型(按照作用域划分)
- 全局变量(全局环境里面的变量)
- 集合变量(请求集合里声明的变量)
- 自定义环境变量
- 数据变量(在runner时文件变量)
- 本地变量
变量权重类型
全局变量 < 集合变量 < 自定义环境变量 < 数据变量 < 本地变量
变量范围
在请求构造器中使用变量
可以通过 {{variableName}} 的方式使用变量,如下图所示:
通过数据编辑器设置变量
postman在请求构造器的右上角提供了两处比较便捷的方式设置全局变量和自定义环境变量,分别是环境快速预览按钮和环境设置按钮。如下图所示:
环境快速预览页面
环境设置页面
------
全局变量 (globals variables)
全局变量保存在postman的全局环境中,全局变量可以通过UI或脚本进行设置。
在UI中设置全局变量
- 打开方式1 : 环境快速预览按钮 》 Globals Tab页的Edit按钮
- 打开方式2 : 环境设置按钮 》 Globals按钮
编辑UI如下
使用脚本操作全局变量
全局变量可以在 请求前脚本和测试脚本中进行设置和获取。
设置全局变量脚本如下:
pm.globals.set("variable_key", "variable_value");
语法 :pm.globals.set(“变量名”, “变量的值”);
获取全局变量脚本如下:
var globals_variable = pm.globals.get("variable_key");
语法 :pm.globals.get(“变量名”);
集合变量
集合指的多个请求的集合,集合中可以有多个文件夹(文件夹中有请求)或请求。
通过postman的UI设置集合变量
打开方式:集合 … 按钮 》 Edit 》 Variables
如下图所示:
通过脚本操作集合变量
集合变量可以在 请求前脚本和测试脚本中进行设置和获取。
设置集合变量脚本如下:
pm.collectionVariables.set("variable_key", "variable_value");
语法 :pm.collectionVariables.set(“变量名”, “变量的值”);
获取集合变量脚本如下:
var collectionVariable = pm.collectionVariables.get("variable_key");
语法 :pm.collectionVariables.get(“变量名”);
自定义环境变量(environment variables)
自定义环境变量(下面称之为 环境变量) 是postman中最常用的变量。首先,环境变量可以通过可视化UI进行编辑,导入,导出等操作,数据可视化效果好;然后,环境变量 可以设置多个环境,环境切换简单;最后,环境变量可以通过脚本进行修改。
通过UI设置环境变量
- 打开方式1 :环境快速预览按钮 》 Edit
- 打开方式2 :环境设置按钮 》 选择需要编辑的环境 》 点击
通过脚本操作环境变量
设置环境变量脚本
pm.environment.set("variable_key", "variable_value");
语法 :pm.environment.set(“变量名”, “变量的值”);
获取环境变量脚本
var environmentVariable = pm.environment.get("variable_key");
语法 :pm.environment.get(“变量名”);
数据变量(Data variables)
数据变量是指运行时指定的数据文件,postman 目前支持csv和json格式的数据文件。如果我们需要对一个或者多个请求进行多数据的批量测试,那么导入预设的数据文件绝对是一个好的选择。
导入数据文件
csv 和 json 数据格式如下:
打开方式 : 选择集合 》 runner(是个logo) 按钮 》 选择请求文件夹或请求 》 选择文件 (选择后可以预览数据)》 选择请求 》RUN
运行结果如下:
可以看出有三条测试数据,这里请求自动执行了三次。
在请求前置脚本中可以操作 数据变量 data ,但是在tests脚本中则无法操作 数据变量。
通过脚本在请求前置脚本中设置数据变量
设置数据变量脚本
pm.iterationData.set("variable_key", "variable_value");
语法 :pm.iterationData.set(“变量名”, “变量的值”);
获取数据变量脚本
var iterationData = pm.iterationData.get("variable_key");
语法 :pm.iterationData.get(“变量名”);
总结
postman 变量根据不同的测试需求应该灵活运用,一下是个人一些见解:
- 在集合中特有的变量,可以设置在集合变量中。首先,集合导出时回将集合变量一起导出(导入同理);其次可以减少环境变量的数量。
- 需要在集合间传递或共用的变量设置为环境变量。使用环境变量可以多个集合共用,并且导入导出简单,可以根据情况设置多个环境。
- 一些不变的变量设置为全局变量。例如:服务器地址等
- 批量测试,多组数据测试使用数据变量。可以预先设置测试数据,批量完成测试。