说一下postman的关联参数
我们做API开发时,开发完成后还要测试一下!
但是在应用业务接口中,完成一个业务功能时,有时候一个接口可能不满足业务的整个流程逻辑,需要多个接口配合使用,并且在A接口调用后,我们需要在A接口的返回数据中拿到需要的字段,并且在调用B接口的时候,作为B接口请求参数传递给B接口,拿到后续响应的返回数据。
这就是关联参数,所谓的参数关联就是上一个参数的返回值用于下一个参数的请求中,通过python中requests我们知道如何请求,那么通过postman如何请求?
场景还原:
- 登录授权(接口a)
- 每个接口都需要登录授权后的token(接口b)
环境说明:
- 开发机:macos catalina
- PostMan:版本8.5.1 (8.5.1)
实战开始
先设置一下postman的环境变量,在postman的右上角,找一个眼睛的图标
我们要添加环境变量,所以在environment栏中点击"Add"
在添加环境界面设置环境名和环境里的变量,可以给变量初始值,也可以不给(可以后续走接口返回值设置该变量的值)
我设置了两个变量,一个是ip
,一个是port
好,初始的变量设置完成了,如何使用呢?
通过形式:{{变量名}},当切换环境的时候(右侧环境名箭头下拉,有你保存的所有环境,可选择当前环境),这个变量则为不同的值。所以通过切换环境,我们可以批量改变一个请求中的多个参数
好,到这里我们设置完成了postman中要用到的环境变量,下面我们开始设置关联参数
在上一张图片中我用到了login接口,这个登录接口会给我返回一个access_token
,这个access_token
在后面的所有接口中我都会用到, 所以,我要编写一个简单的自动化脚本,取到我们想要的access_token
,方法如下:
- 在我刚才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
好,通过上面的步骤,参数已经取出来了,这个时候怎么进行关联呢?postman对于这样特殊的方法。
也强下面我需要一个article的接口,需要在header
中传送access_token
通过上面的栗子,我们发现已经完成了参数关联了,但是这只是一个非常简单的小例子,但是,它让我们明白的操作方法,那么,更大更复杂的关联参数距离我们应该也不远了,请小伙伴自行摸索吧!
嗯,按照博主的教程试了试,发现这种方式真的好方便呀