我们的需求是这样的,通过获取token的接口返回token(或者有的系统是通过登录接口,返回token),然后请求其他接口时在header头中带上token信息。
OK、接下来我们这样操作:
1. 打开postman软件,准备一个获取token的接口
2.测试获取token的接口,如下图
3. 现在该接口接口给我们返回了token值,我们需要把这个token放到一个全局变量、以后每次操作的时候、带上token即可
4. 新建一个全局变量:
5. ok、关闭之后、接着测试接口,在postman接口对应的【tests】里面添加如下代码:
var data = JSON.parse(responseBody);
if (data.token) {
tests["Body has token"] = true;
postman.setEnvironmentVariable("token", data.token);
}
else {
tests["Body has token"] = false;
}
这段代码的意思是设置刚才设置的全局变量
但是这里需要注意的是,data.token是和接口返回结果中token的位置有关的
{
"status": "Success",
"token": "QkxJVEtMUHhaU1NCRU1uRFM0SG1tZlVPS0JWR3FzcGJ3Vm9GMXBTOGlpdz06YWRtaW46NjM2ODI0NTE5MzAwODY3MDAw",
"username": "admin",
"message": "The token was successfully generated with a valid time of 30 minutes"
}
如果返回结果中token位置为:
{
"status": "Success",
“data” :{ "token": "QkxJVEtMUHhaU1NCRU1uRFM0SG1tZlVPS0JWR3FzcGJ3Vm9GMXBTOGlpdz06YWRtaW46NjM2ODI0NTE5MzAwODY3MDAw"}
"username": "admin",
"message": "The token was successfully generated with a valid time of 30 minutes"
}
那么代码就要写成
var data = JSON.parse(responseBody);
if (data.data.token) {
tests["Body has token"] = true;
postman.setEnvironmentVariable("token", data.data.token);
}
else {
tests["Body has token"] = false;
}
6. 可以看到登录成功、然后我们看下刚才设置的全局变量是否有值存在?
7. 已经设置成功、接下来就是请求接口的时候带上这个token、
8. 只需要这样、token值就发送过去了、然后我们在代码里面获取、