eg:
如何使用 PostMan 的 pre-request-script 来进行预登陆?
1、 使用脚本 请求/login接口,获取token并设置为环境变量
2、 在请求/token时, 利用'{{}}'符号 将环境变量的值, 写到请求头中
Postman在pre-request Script中执行登录获取token 1.问题是什么
执行接口需要每次执行登录,然后带入登录的token,需要复制比较麻烦
2.怎么解决
把每次请求发送之前先发送登录请求,然后把登录的token设置到环境变量,最后再把取环境变量的值token
具体代码如下
// 定义发送登录接口请求方法
function sendLoginRequest() {
//定义请求体
var data = {
"mobilePhone":"182999999999",
"verificationCode":"",
"registerWay":"1"
}
// 构造一个 POST raw 格式请求。这里需要改成你们实际登录接口的请求参数。
const loginRequest = {
url: '<https://xxxxxx>',
method: 'POST',
header:'Content-Type:application/json',
body: {
mode:'raw',
raw:JSON.stringify(data)
}
};
// 发送请求。
// 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 的,可以使用 pm.cookies.get('token') 方式获取。
// pm.cookies 参考文档:<https://www.apifox.cn/help/app/scripts/api-references/pm-reference/#pm-cookies>
const jsonData = res.json();
// 将 accessToken 写入环境变量 Authorization
pm.environment.set('Authorization', jsonData.data.token);
}
});
}
// 获取环境变量里的 Authorization
const accessToken = pm.environment.get('Authorization');
// 如 Authorization 没有值,则执行发送登录接口请求
if (!accessToken ) {
sendLoginRequest();
}
在 PostMan 的 Headers 处设置使用环境变量
Authorization:{{Authorization}}

好处:不用调用登录请求,一步操作到位