postman 在接口测试方面备受推崇的原因之一,就在于其强大的变量支持机制,丰富的变量,使得参数化异常简单,极大的提高了脚本的灵活性。
在 postman 中提供了以下五种范围类型的变量:
其中从作用域上来说:全局变量>集合变量>环境变量>数据变量>本地变量
但是从优先级上来说:本地变量>数据变量>环境变量>集合变量>全局变量
下面我们对上述五种变量进行展开说明;
- 全局变量(global)
【1】创建全局变量
设置->选择 Globals
如上我们增加了一个全局变量 name,值为 “海哥说测试”,设置完成 点击 Save 按钮进行保存;
【2】全局变量使用
注意在 postman 中引用变量的形式必须为 {{Variables}}的形式进行引用;
设置完变量后,鼠标悬停,可以显示出变量的值,即证明引用成功;
下面我们发起一个 post 接口请求,来对其进行验证
我们从上图中可以看到,变量 name 在响应中成功获取到其值 "海哥说测试",可见全局变量已经引用成功且生效。
- 集合变量(Collection 和 Collections 变量)
故名思议,集合变量就是只在一个集合中生效。
【1】集合变量的创建
选择创建变量的集合->右键->选择 Edit,即可进入到集合变量编辑界面;
将页签切换到 Varables 开始编辑变量名和变量值,编辑完成,点击 Update 按钮让其生效;
【2】集合变量的使用
可见此时集合变量 age 在其所在集合内已经生效。此时我们切换到另一个集合去引用 age 变量查看下结果:
在响应中并没有出现预期的值 "100",可见此时集合变量 age 未曾生效;
- 环境变量(environment)
环境变量需要我们重点掌握,因为在实际工作中我们都会针对被测系统在多个环境中进行测试,一般情况下至少会经过 开发环境(dev)、测试环境(test)、准生产(uat) 三个环境的测试,才能最终将软件提交生产。而各个测试环境之间的网络接入(即网关)、基础配置信息往往不同,因而我们需要引入环境变量,针对不同环境设置对应的变量;
【1】环境变量创建
请先明确一点:环境变量必须依赖于环境,所以我们创建环境变量之前,必须先创建对应环境。具体步骤如下:
第一步:设置->点击 Add ,创建环境
第二步:设置环境名称,添加对应的环境变量信息
点击 Add,即添加完成,添加完成在下图位置可以看到我们设置的环境信息
我们可以在添加一个 UAT 环境,方便后续对比使用;
【2】环境变量使用
首先我们将环境切到 test,此时观察 height 的引用
而后我们将环境切换到uat,此时观察 height 的引用
细心的您不难发现,引用环境不同,height 对应的值不同,实现了不同环境对应不同变量的功能。当然我们也可以在各个环境中增加自己独有的变量。
- 数据变量(data)
注意:数据变量只在 Runner 中且当 Runner 正在运行时才会生效。数据变量不能单独添加,必须依赖于文件,支持的文件类型为 .text、.csv、.json
这种数据变量在自动化中应用广泛,后面章节会着重介绍,现在只需了解即可;
- 本地变量(local)
这个变量在 postman 中没有明确指出,但是一般可以将 Request 请求中的预置脚本 Pre-request Scripts 与断言 tests 中 js 脚本定义的变量作为本地变量。这个变量只理解就好,无需掌握。