一、登录后,后置获取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();
}