前面讲了如何定义变量以及讲解了 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 中使用,如下图中红框标注,使用方式均为{{变量名}}的形式。

postgres随机字符串 postman设置随机变量_Postman

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

postgres随机字符串 postman设置随机变量_postgres随机字符串_02

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

postgres随机字符串 postman设置随机变量_环境变量_03

图片说明:

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

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

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

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

postgres随机字符串 postman设置随机变量_postgres随机字符串_04

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

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

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

  • 环境变量:pm.environment.get("变量名")
  • 全局变量:pm.globals.get("变量名") 上述代码都可以从 Tests 右侧的预设代码中获取:
  • postgres随机字符串 postman设置随机变量_环境变量_05


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

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

内置变量使用

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

在请求中使用:

postgres随机字符串 postman设置随机变量_postgres随机字符串_06