1. 概述
HTTP无状态接口在使用
Bearer Token
方式进行接口认证时,每次调用都要求在请求头中传递一个 token 值(例如 JWT),这个 token 一般通过调用登录接口获取。在通过登录页面调用登录接口获取 token 后会由客户端程序对 token 进行暂存,在后续调用业务接口时向接口传递该 token 即可。
在
Postman
中,如果你只调用很少的接口,则可以先调用登录接口获取token,然后在接口的认证方式(Authorization)中选择
Bearer Token
,填入该token值即可。但是如果你在做测试,需要频繁调用大量接口,则每个接口都需要添加,并且当token过期后需要更新,很不方便。此时,可以借助Postman的
变量(variables)
功能,将从登录接口获取的token值保存为变量,在调用接口时Postman自动获取该变量值作为token传递给接口。下面介绍这种设置方式。
2. 确定token格式
假设你的登录接口为
localhost:8080/login
,首先传入登录信息调用该接口,查看返回的token格式:
上面接口返回的token值直接保存在JSON格式响应体的第一级,即
responseBody.token
。
3. 将token设置为Collection变量
Postman变量 可以理解为保存在本地的接口信息,根据使用范围分为多种,常用的有
Global
、
Collection
、
Environment
:
- Global:适用于所有场景的变量
- Collection:只在当前Collection有效的变量
- Environment:不同环境使用不同变量
一般地,一个系统的接口可以创建一个Collection进行管理,那么可以将token设置为
Collection变量
。如何设置呢?
点击登录接口的
Tests
窗口,在编辑器中添加如下JavaScript脚本进行设置:
var res =JSON.parse(responseBody);
pm.collectionVariables.set("token", res.token);
这段代码将响应体转换为
JSON
数据,然后将token值设置为Collection变量
collectionVariables
,变量名就为
token
。
代码添加后再次调用登录接口,使脚本生效。
然后,在左侧Collection菜单中点击当前Collection名,再点击
Variables
,可以看到设置的变量信息,说明变量设置成功:
4. 认证中添加token变量
设置完以后就可以使用该变量。
还是在Collection界面,点击
Authorization
,选择认证Type为
Bearer Token
,在底下的Token中填入变量占位格式
{{token}}
,即表示此处的值将引用变量
token
的值。
5. 在接口设置认证类型
现在该Collection下所有的接口都可以继承Collection的认证token了,只需要在这些接口的
Authorization
页面选择认证Type为
Inherit auth from parent
,即继承自父项,也就是Collection,但这一步一般无需特别设置,如果在第4步设置了Collection的认证token,则Postman默认会选继承该token,若不是该选项,则需单独设置。
设置完成后可直接调用接口,新加的接口也无需单独进行设置。
The End.
参考
[1] Postman说明文档:Using variables
版权归原作者 留围冰 所有, 如有侵权,请联系我们删除。