欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

用 Postman 做接口自动化(十一)变量使用

程序员文章站 2024-03-21 20:43:04
...

前面讲了如何定义变量以及讲解了 Postman 中内置的随机变量。

那么如何使用这些变量呢?

首先变量要遵循我们前面提到的优先级:

局部变量 local > data 文件中的变量 data > 环境变量 environment > Collection 中的变量 collection > 全局变量 global

内置变量 dynamic 是全局变量,但是你只要不是非要把变量名设置成和内置变量一样,那么就不用关注它。

优先级是针对不同级别的变量中都设置了相同的变量名的情况,在使用时才会有优先级之分,如果每个环境的变量名不同,那么也不会互相影响。

只是说在遇到变量时,找变量的过程是从局部到全局的顺序,在某一级找到对应的变量名,就会使用哪一级的变量。

使用变量有两种方式,一种是在请求中使用,另一种是在代码(Pre-request Script 和 Tests)中使用。

在请求中使用

在请求中使用变量 variable,使用两对大括号标识{{变量名}}

比如有一个变量值为name=nemo(参考各种变量的设置方法),在某请求的 url 中使用这个变量http://{{name}}.test,那么当发送请求的时候,Postman 就会获取对应的变量值,替换该 url 为 http://nemo.test

变量可以在请求的任意位置使用,比如 url,params,headers,body,authorization 中使用,如下图中红框标注,使用方式均为{{变量名}}的形式。

用 Postman 做接口自动化(十一)变量使用

下面是一个实际使用的例子:

用 Postman 做接口自动化(十一)变量使用

以下是变量设置、变量使用及实际运行时的变量取值的综合图:

用 Postman 做接口自动化(十一)变量使用

图片说明:

  1. 上图中设置了一个名为 test 的环境,其中有三个变量,分别是hostpathvalue
  2. 新建了一个请求,名为POST Form Data的请求,其中 URL 使用了hostpath两个变量,body 中使用了value变量;
  3. 最后运行请求后,三个变量都由环境中设置的值替换。

除了局部变量外,其他变量都可以通过这种方式使用。

在代码(Pre-request Script 和 Tests)中使用变量

在代码中调用变量,需要使用 Postman 预设的代码pm.environment.get("变量名"),以上面的请求和变量为例:

用 Postman 做接口自动化(十一)变量使用

var v = pm.environment.get("value"); // 获取环境变量 value 的值并存在局部变量 v 中

console.log('value变量的值为:', value)  // 打印变量值

环境变量和全局变量必须使用预设的代码获取:

  • 环境变量:pm.environment.get("变量名")
  • 全局变量:pm.globals.get("变量名")
    上述代码都可以从 Tests 右侧的预设代码中获取:
    用 Postman 做接口自动化(十一)变量使用

还有一种变量在 Tests 中使用也需要通过代码获取,那就是通过数据文件传递的 Data 变量,其使用的预设代码为:

pm.iterationData.get("变量名")

内置变量使用

前面我们讲到 Postman 中有很多内置变量,用来生成随机数据。这些内置变量只能用于请求中的 URL / headers / body 中使用,不能在代码中使用。

在请求中使用:
用 Postman 做接口自动化(十一)变量使用