用 Postman 做接口自动化(九)变量设置

接触过任何语言类和一些测试工具的同学应该都知道变量这个概念。

变量是用来存储动态值的静态标识符。变量标识的信息可以更改,但是对变量的操作保持不变。

Postman 中的变量也是如此。我们可以在多个位置重用变量值。如果变量的值发生变化,变量的每个实例都会相应的更改,从而减少了重复修改的需要和出错的可能性。

比如,我们的所有接口都是同一个域名http://nemo.test,但这个域名可能会变,比如我们运行在开发环境的时候,域名会变为 http://nemo.dev ,如果我们不使用变量而是老老实实写的话。当我们写上几十上百个请求的时候,此时如果需要在不同的环境中运行时,将会是一个噩梦,你需要逐一修改每个请求的 Host。

我们还可以通过变量从一个请求中获取数据,在另一个请求中使用它们。这就是依赖的处理,后面的章节会再讲。

简而言之,使用变量有如下好处:

  • 重用数据使代码(请求)保持DRY(don’t repeat yourself 不要自我重复);
  • 配置不同的设置以使用不同的环境;
  • 从 Collection 中的响应中提取数据供后续请求使用。

在 Postman 中有以下几种变量:

  • 局部变量 local
  • data 文件中的变量 data
  • 环境变量 environment
  • Collection 中的变量 collection
  • 全局变量 global
  • 内置变量 dynamic

除局部变量以外的其他变量值只能是字符串,如果要存储对象或者其他数据类型的数据,需要先转换为字符串(JSON.stringify()),然后在使用时转换回去(JSON.parse())。

变量优先级

以下的图可以说明变量的优先级,越外层的变量优先级越低。

比如同一个变量名 host,在 environment 和 global 中分别设置了不同的值,那么最终运行请求的时候,实际使用的是 environment 中的值,因为 environment 变量的优先级比 global 更高。

设置变量

我们先了解一下如何设置这些变量,有部分内容已经在前面提到过了,另外内置变量由 Postman 提供不需要设置。

1. 局部变量 local variable

局部变量是在代码(Pre-request,Tests)中设置的。使用 JavaScript 的变量语法即可。

其优先级最高,但是仅在当前的脚本环境中有效,对于上图中的json变量,只在当前请求的 Tests 中的脚本有效。

data 文件中的变量 data

在 Collection 运行中我们讲过可以加载数据驱动的文件(CSV,JSON)中的值。

上图中通过加载的数据文件中读取出的三个变量pathvaluep

环境变量 environment

环境变量可以通过两种方式设置,一种是上一节讲过的在环境设置中进行设置:

上图中设置了一个变量host,其值为http://127.0.0.1

另一种设置环境变量的方法是,在代码(Pre-request,Tests)中设置。

上图中通过代码设置了一个变量 db_host,其值为 192.168.1.222

Collection 中的变量 collection

在 Collection 中可以设置变量,设置的方法是在 Collection 编辑界面的 Variables选项卡中:

上图中设置了一个 Collection 变量 path,其值为 post

也可以看到这里的设置界面很类似环境变量的设置。

全局变量 global

全局变量的设置类似环境变量的设置,也有两种方式。

一种方法,那就是通过代码(Pre-request,Tests)设置。

上图中通过代码设置了一个全局变量 username, 其值为nemo

另一种方法是在环境设置(就是设置环境变量那个地方)界面进行设置:

上图中设置了全局变量PI,其值为 3.14159265358

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值