Apifox设置全局动态token
由于版本不一样可能看到的界面不一样
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
// 把responseBody转为json字符串
var data = JSON.parse(responseBody);
// 设置环境变量token,供后面的接口引用,位置就是上一步获取的位置
pm.globals.set("token", data.result.token);
在不登录的情况下获取token 就需要前置操作了 操作和上面后置操作一样的 不一的只在脚本
// body 里面的参数需要自己设置对应的
// 定义发送登录接口请求方法
function sendLoginRequest() {
// 获取环境里的 前置URL
// const baseUrl = pm.environment.get(BASE_URL);
// 登录用户名,这里从环境变量 LOGIN_USERNAME 获取,也可以写死(但是不建议)
// const username = pm.environment.get(LOGIN_USERNAME);
// 登录用户名,这里从环境变量 LOGIN_PASSWORD 获取,也可以写死(但是不建议)
// const password = pm.environment.get(LOGIN_PASSWORD);
// 构造一个 POST x-www-form-urlencoded 格式请求。这里需要改成你们实际登录接口的请求参数。
const loginRequest = {
url: http://localhost:8080/sbimes/sys/login,
method: POST,
// 若 body 为 x-www-form-urlencoded 格式,mode 为 urlencoded
// body: {
// mode: urlencoded,
// urlencoded: [
// { key: account, value: username },
// { key: password, value: password }
// ]
// }
/*
// 若 body 为 form-data 格式,mode 为 formdata
body: {
mode: formdata,
formdata: [
{ key: account, value: username },
{ key: password, value: password }
]
}*/
// 若 body 为 raw 或 json 格式,mode 为 raw
body: {
mode: raw,
raw: JSON.stringify(
{
"username":"admin",
"password":"123456",
"captcha":"",
"checkKey":""})
}
};
// 发送请求。
// pm.sendrequest 参考文档: https://www.apifox.cn/help/app/scripts/api-references/pm-reference/#pm-sendrequest
pm.sendRequest(loginRequest, function (err, res) {
if (err) {
console.log(err);
} else {
// 读取接口返回的 json 数据。
// 如果你的 token 信息是存放在 cookie 的,可以使用 res.cookies.get(token) 方式获取。
// cookies 参考文档:https://www.apifox.cn/help/app/scripts/api-references/pm-reference/#pm-cookies
const data = JSON.parse(res);
// 将 accessToken 写入环境变量 ACCESS_TOKEN
pm.globals.set(token, data.result.token);
}
});
}
// 获取环境变量里的 ACCESS_TOKEN
const token = pm.globals.get(token);
// 获取环境变量里的 ACCESS_TOKEN_EXPIRES
// const accessTokenExpires = pm.environment.get(ACCESS_TOKEN_EXPIRES);
// 如 ACCESS_TOKEN 没有值,或 ACCESS_TOKEN_EXPIRES 已过期,则执行发送登录接口请求
if (!token) {
sendLoginRequest();
}
