配置自动化的方法
为了避免验证码干扰,需要关闭若依的验证码功能。此外,需要配置apifox环境变量LOGOUT_TIME和后台配置的登陆过期时间对应上(单位为毫秒),以防止重复登录。


// 发送登录接口请求的方法
function sendLoginRequest() {
    // 获取环境变量中的前置URL
    const baseUrl = pm.environment.get("BASE_URL");
    // 获取登录用户名和密码
    const username = pm.environment.get("LOGIN_USERNAME");
    const password = pm.environment.get("LOGIN_PASSWORD");
    // 后台配置的过期时间默认为一天
    const logOutTime = parseInt(pm.environment.get("LOGOUT_TIME")) || 86400000;

    // 构造一个POST x-www-form-urlencoded 格式的请求体
    const loginRequest = {
        url: baseUrl + "/login",
        method: "POST",
        header: {
            "Content-Type": "application/json",
        },
        body: {
            mode: 'raw',
            raw: JSON.stringify({ username, password }),
        },
    };

    // 发送请求
    pm.sendRequest(loginRequest, function(err, res) {
        if (err) {
            console.log(err);
        } else {
            // 读取接口返回的JSON数据
            const jsonData = res.json();
            // 将accessToken和过期时间写入环境变量
            pm.environment.set("ACCESS_TOKEN", jsonData.token);
            pm.environment.set("ACCESS_TOKEN_EXPIRES", new Date().getTime() + logOutTime);
        }
    });
}

// 获取环境变量中的ACCESS_TOKEN和ACCESS_TOKEN_EXPIRES
const accessToken = pm.environment.get("ACCESS_TOKEN");
const accessTokenExpires = pm.environment.get("ACCESS_TOKEN_EXPIRES");

// 如果ACCESS_TOKEN为空,或ACCESS_TOKEN_EXPIRES已过期,则执行发送登录接口请求
if (!accessToken || (accessTokenExpires && accessTokenExpires <= new Date().getTime())) {
    sendLoginRequest();
}
Logo

加入社区!打开量化的大门,首批课程上线啦!

更多推荐