Postman 及 Newman 使用开发指南(二):Postman 环境变量与全局变量

使用API的常见场景是开发人员有自己的本机开发(dev)环境,团队之间共用测试(staging)环境,对外提供生产(production)环境。

本文假设各种环境的链接如下:

dev http://localhost
staging http://staging
production https://production

开发人员对/users接口进行调试时,如果没有环境变量,则可能要不断地输入以下链接进行替换:

http://localhost/users
http://staging/users
https://production/users

Postman 提供了环境变量(Environment Variable),来解决这个问题。

环境变量

管理

Postman 环境变量相关按钮放置在Builder页面的右上角。

postman环境变量相关按钮

点击最右的 ⚙️ 图标,可以添加、编辑、查看环境。首先,我们添加一个staging的环境,下属变量url设置为http://staging

postman环境变量相关按钮

再添加dev和production环境。

postman环境变量相关按钮

使用示例

我们将环境切换为dev,在地址栏输入{{url}}/users,查看“Code”代码:

GET /users HTTP/1.1
Host: localhost
Cache-Control: no-cache
Postman-Token: 9a0ae49e-8983-55f2-7585-a4ea721863da

可见,Postman 自动将{{url}}解析为http://localhost

全局变量

API测试时,也常有这样的场景:首先要进行登录,登录后获取用户名,而用户名将在后续请求中使用。

Postman 提供了全局变量(Global Variable),来解决类似问题。

设置全局变量

至少有三种方式来设置全局变量:

  1. Postman 全局变量的按钮放置在Builder页面的右上角,👁️ 图标。

postman全局变量相关按钮

点击“Global”对应的“Edit”即可进入管理页面:

postman全局变量相关按钮

  1. Pre-request Script
  2. Tests

其中方式2和方式3都可以用以下命令设置全局变量:

postman.setGlobalVariable("variable_key", "variable_value");

示例

我们首先通过上节的方式1添加一个全局变量:leap_year_2016

postman全局变量

我们访问 Postman 官方示例中判断年份是否为闰年的链接:

https://postman-echo.com/time/leap?timestamp=2016-10-10

然后在Tests里添加如下代码:

var jsonData = JSON.parse(responseBody);
postman.setGlobalVariable('leap_year_2016',jsonData.leap) ;

postman全局变量

发送请求后,由于2016年是闰年,所以全局变量leap_year_2016值应变为true。

查看一下:

postman全局变量

leap_year_2016=true,符合预期。

Published: April 21 2017

blog comments powered by Disqus