postgresq 变量声明 postman 变量_环境变量


postman 在接口测试方面备受推崇的原因之一,就在于其强大的变量支持机制,丰富的变量,使得参数化异常简单,极大的提高了脚本的灵活性。

在 postman 中提供了以下五种范围类型的变量:


postgresq 变量声明 postman 变量_全局变量_02


其中从作用域上来说:全局变量>集合变量>环境变量>数据变量>本地变量

但是从优先级上来说:本地变量>数据变量>环境变量>集合变量>全局变量

下面我们对上述五种变量进行展开说明;

  • 全局变量(global)

【1】创建全局变量

设置->选择 Globals


postgresq 变量声明 postman 变量_数据_03


postgresq 变量声明 postman 变量_postgresq 变量声明_04


如上我们增加了一个全局变量 name,值为 “海哥说测试”,设置完成 点击 Save 按钮进行保存;

【2】全局变量使用

注意在 postman 中引用变量的形式必须为 {{Variables}}的形式进行引用;

设置完变量后,鼠标悬停,可以显示出变量的值,即证明引用成功;


postgresq 变量声明 postman 变量_环境变量_05


下面我们发起一个 post 接口请求,来对其进行验证


postgresq 变量声明 postman 变量_数据_06


我们从上图中可以看到,变量 name 在响应中成功获取到其值 "海哥说测试",可见全局变量已经引用成功且生效。

  • 集合变量(Collection 和 Collections 变量)

故名思议,集合变量就是只在一个集合中生效。

【1】集合变量的创建

选择创建变量的集合->右键->选择 Edit,即可进入到集合变量编辑界面;


postgresq 变量声明 postman 变量_数据_07


将页签切换到 Varables 开始编辑变量名和变量值,编辑完成,点击 Update 按钮让其生效;


postgresq 变量声明 postman 变量_数据_08


【2】集合变量的使用


postgresq 变量声明 postman 变量_postman设置全局变量_09


可见此时集合变量 age 在其所在集合内已经生效。此时我们切换到另一个集合去引用 age 变量查看下结果:


postgresq 变量声明 postman 变量_postgresq 变量声明_10


在响应中并没有出现预期的值 "100",可见此时集合变量 age 未曾生效;

  • 环境变量(environment)

环境变量需要我们重点掌握,因为在实际工作中我们都会针对被测系统在多个环境中进行测试,一般情况下至少会经过 开发环境(dev)、测试环境(test)、准生产(uat) 三个环境的测试,才能最终将软件提交生产。而各个测试环境之间的网络接入(即网关)、基础配置信息往往不同,因而我们需要引入环境变量,针对不同环境设置对应的变量;

【1】环境变量创建

请先明确一点:环境变量必须依赖于环境,所以我们创建环境变量之前,必须先创建对应环境。具体步骤如下:
第一步:设置->点击 Add ,创建环境


postgresq 变量声明 postman 变量_数据_11


第二步:设置环境名称,添加对应的环境变量信息


postgresq 变量声明 postman 变量_环境变量_12


点击 Add,即添加完成,添加完成在下图位置可以看到我们设置的环境信息


postgresq 变量声明 postman 变量_全局变量_13


我们可以在添加一个 UAT 环境,方便后续对比使用;


postgresq 变量声明 postman 变量_全局变量_14


postgresq 变量声明 postman 变量_环境变量_15


【2】环境变量使用

首先我们将环境切到 test,此时观察 height 的引用


postgresq 变量声明 postman 变量_postgresq 变量声明_16


而后我们将环境切换到uat,此时观察 height 的引用


postgresq 变量声明 postman 变量_数据_17


细心的您不难发现,引用环境不同,height 对应的值不同,实现了不同环境对应不同变量的功能。当然我们也可以在各个环境中增加自己独有的变量。

  • 数据变量(data)

注意:数据变量只在 Runner 中且当 Runner 正在运行时才会生效。数据变量不能单独添加,必须依赖于文件,支持的文件类型为 .text、.csv、.json

这种数据变量在自动化中应用广泛,后面章节会着重介绍,现在只需了解即可;


postgresq 变量声明 postman 变量_postgresq 变量声明_18


  • 本地变量(local)

这个变量在 postman 中没有明确指出,但是一般可以将 Request 请求中的预置脚本 Pre-request Scripts 与断言 tests 中 js 脚本定义的变量作为本地变量。这个变量只理解就好,无需掌握。