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}}

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