我们做API开发时,开发完成后还要测试一下!
但是在应用业务接口中,完成一个业务功能时,有时候一个接口可能不满足业务的整个流程逻辑,需要多个接口配合使用,并且在A接口调用后,我们需要在A接口的返回数据中拿到需要的字段,并且在调用B接口的时候,作为B接口请求参数传递给B接口,拿到后续响应的返回数据。
这就是关联参数,所谓的参数关联就是上一个参数的返回值用于下一个参数的请求中,通过python中requests我们知道如何请求,那么通过postman如何请求?

场景还原:

  1. 登录授权(接口a)
  2. 每个接口都需要登录授权后的token(接口b)

环境说明:

  • 开发机:macos catalina
  • PostMan:版本8.5.1 (8.5.1)

实战开始

先设置一下postman的环境变量,在postman的右上角,找一个眼睛的图标
图1

我们要添加环境变量,所以在environment栏中点击"Add"
图2

在添加环境界面设置环境名和环境里的变量,可以给变量初始值,也可以不给(可以后续走接口返回值设置该变量的值)

我设置了两个变量,一个是ip,一个是port

图3

好,初始的变量设置完成了,如何使用呢?
通过形式:{{变量名}},当切换环境的时候(右侧环境名箭头下拉,有你保存的所有环境,可选择当前环境),这个变量则为不同的值。所以通过切换环境,我们可以批量改变一个请求中的多个参数

图4

好,到这里我们设置完成了postman中要用到的环境变量,下面我们开始设置关联参数

在上一张图片中我用到了login接口,这个登录接口会给我返回一个access_token,这个access_token在后面的所有接口中我都会用到, 所以,我要编写一个简单的自动化脚本,取到我们想要的access_token,方法如下:

  1. 在我刚才login标签中打到test, 用下面的脚本填充
pm.test("Status code is 200", function () {

pm.response.to.have.status(200);

});

// 把responseBody转为json字符串

var data = JSON.parse(responseBody);

// 设置环境变量token,供后面的接口引用

pm.environment.set("access_token", "Bearer "+data.message.access_token);

注意我的返回值是这样的

{

    "error": "0",
    "message": {
        "access_token": "xxxxxx",
        "expire": "1624267145"
    }

}

等接口报文有了数据,我们再看刚才的环境变量,就会多了一个access_token
图5

好,通过上面的步骤,参数已经取出来了,这个时候怎么进行关联呢?postman对于这样特殊的方法。

也强下面我需要一个article的接口,需要在header中传送access_token

图6

通过上面的栗子,我们发现已经完成了参数关联了,但是这只是一个非常简单的小例子,但是,它让我们明白的操作方法,那么,更大更复杂的关联参数距离我们应该也不远了,请小伙伴自行摸索吧!