使用Postman时,经常会遇到接口需要加token,每次手动添加较麻烦。解决方案:
首先在登陆接口访问后,将获取到的token设置为Postman的环境变量(Environment)或全局变量,例如设置环境变量名:token,值为登陆接口访问成功后,在responseBody中的token值。然后访问其他接口时,读取该token值即可:Postman里面获取变量的语法为:{{变量名}}。
假如login接口返回的json格式为
{
"status": 0,
"message":"成功",
"data": {
"username": "cams_admin_dev",
"token":"eyJhbGciOiJIUzUxMiJ9.eyJleHAiOjE1MTYzNDIxMjAsInN1YiI6ImNhbXNfYWRtaW5fZGV2IiwiY3JlYXRlZCI6MTUxNjI1NTcyMDU0NywiZnVsbCI6ImNhbXNfYWRtaW5fZGV2IiwidWF1dGgiOiIvKio7QUxMIiwiYXV0aCI6InNldHRpbmdzLGNhbXNfYWRtaW4saW5kdXN0cnksYm9uZCxjYW1zSG9tZSxjb21wYW55LGFyZWEsZGV0YWlscyxjYW1zT3BlcmF0aW9uIn0.pI09X8KNoIK0fb6xC1xbrSZyg-EnUnlZ_9shmOQCRDtdIIEA5iyq3HmzgSx0ReaChEAZxkrrSRTtSXE8ZlbCTw"
}
}
在Postman软件的Tests中写以下代码,设置环境变量
pm.test("Status code is 200", function (){
pm.response.to.have.status(200);
});
var data = JSON.parse(responseBody); // 把responseBody转为json字符串
pm.environment.set("token",
data.data.token); // 设置环境变量token,供后面的接口引用
或者,设置全局token方法:
var jsonData
=JSON.parse(responseBody);//获取body中返回的所有参数
postman.setGlobalVariable("token",jsonData.data.token);//把返回参数中的keys设置为环境变量
postman可以设置多套环境,每套环境里可以有多个环境变量。环境变量是特定的环境下引用的变量,必须要制定对应的环境才能引用到其中的变量。postman只可以设置一组全局变量,作用于整个postman。而全局变量是在postman中所有的api都使用的变量,可以直接引用全局变量中的变量,而不用指定环境。
根据token在其他请求接口中的位置,将接口token值填充进去,格式为 :{{token}}。
如在其他接口的Authorization请求头中设置,填写token值如下。
如果token是在body体中传送,则添加的情况如下
鼠标移动到{{token}}上时,可用显示它的值,这时再访问其他接口,就可以成功了。