如何用好Postman 中的 变量

310 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第26天,点击查看活动详情

大家好,我是阿萨。昨天给大家介绍了如何使用Postman 录制请求?相信可以录制请求后,大家写API 测试脚本就更方便了。只需要把录制好的请求,修改下参数以及断言,就可以是一个API的测试用例了。

一 变量使用场景

今天我们学习下Postman的变量。大家都知道 实际工作中经常会有多套测试环境,不同测试环境中某个参数的取值有可能是会变化的。 在这种情况下,变量就起到很大的作用了。它们可以让我们一套脚本在多套环境中 执行,而且还确保每次执行结果都正常。

二 变量设置位置

在 Postman 的右上角有一个眼睛图标。 那个就是变量的设置。点击眼睛位置,我们可以看到如下截图。

Image

三 Postman 的变量作用域

Global: 全局, 比如可以将错误提示信息设置成全局变量。

Collections:变量在集合中的所有请求中都是可用的,并且独立于环境。集合变量不会根据所选环境而改变。集合变量适用于使用单一环境的情况,例如用于auth或URL详细信息。

Environment:环境变量, 比如可以将测试domain 设置成环境变量。

Local:本地变量,一般可以在sandbox 中定义。

Data:测试数据中导入的变量,也就是所谓的参数化。比如CSV 和Json文件导入的数据,

四 如何在API 请求中使用变量?

  1.  全局变量,集合变量以及环境变量该如何使用?

场景: 我们有一个API ,它的域名在不同环境设置是不一样的。这个时候我们就可以把URL 中的域名使用一个变量来设置。

设置方法:选中 URL 中的域名。\

Image

点【Set as Variable】,然后点击 【Set as new variable】\

Image

输入【Name】 和【Scope】\

再选中刚才的网址,就可以使用刚才定义好的baseURL 了。

Image

\

设置成变量后的请求。

Image

下次运行前,只需要修改下baseURL的值成为我想要的域名就可以啦。\

Image

\

这样就可以实现同一套 API 脚本在不同的环境下运行的场景啦。

  1. 如何使用临时变量?

场景: 响应的response Data 需要检验的数据是个数据结构,里面是数据结构套数据结构的形式,做断言时不太方便,就可以使用临时变量。

具体使用方法:\

比如我们想把XML 转换成JSON,JSON 转换的结果就可以用一个临时变量保存它。\

或者是使用使用临时变量存储一个数据值

var jsonObject = xml2Json(responseBody);
var data1 = [true, false];var data2 = [true, 123];

这里的jsonObject 就是一个临时变量。

  1. 关于数据类型的变量,我们再讲到CSV 或者Json 文件导入数据的时候再给大家演示。

  2. 变量中default 类型和secret有什么区别?

在我们编辑环境变量的过程中有一个Type 类型的选择,其中有2个类型,这2个类型分别如何使用呢?

Image

一般情况下,我们使用default 就可以啦。

还有一种情况就是我不想别人知道我设置的一些敏感信息数据,该怎么办呢?

这个时候就是secret 登场的时候啦,针对一些敏感信息,我们可以用这个字段,这个时候,设置的所有值也会变成小黑点,别人就不知道我们使用的信息啦。

是不是很安全呢?

  1. 如何输入的参数书值每次都会变化,如何使用变量解决这个问题呢?

实际的API 中有使用随机数或者是时间戳等场景,这个时候如何使用参数化来解决我们的输入问题呢?

其实Postman 很早就帮我们想好了解决办法了。

那就是动态变量。

关于动态变量,和数据参数化一样会在后续章节详细讲解,欢迎大家围观。

你学会了吗?

如果你也想学习如何使用Postman 工具,欢迎跟着阿萨 一起完成21天打卡学习。