Apifox
登录脚本
js
const cryptoJs = require('crypto-js')
const moment = require('moment')
const username = pm.environment.get('USERNAME')
const password = pm.environment.get('PASSWORD')
const baseUrl = pm.environment.get('LOGIN_URL')
const accessToken = pm.environment.get('ACCESS_TOKEN')
const accessTokenExpires = pm.environment.get('ACCESS_TOKEN_EXPIRES')
// 定义发送登录接口请求方法
function sendLoginRequest() {
const loginRequest = {
url: `${baseUrl}/user-web/common/user/login`,
method: 'POST',
header: 'Content-Type: application/json',
body: {
mode: 'raw',
raw: JSON.stringify({
userName: username,
password: cryptoJs.MD5(password).toString(),
language: 'zh-CN',
appCode: 'IRUN',
}),
},
}
// 发送请求。pm.sendrequest
// docs: https://www.apifox.cn/help/app/scripts/api-references/pm-reference/#pm-sendrequest
pm.sendRequest(loginRequest, (err, res) => {
if (err) {
console.log('login error', err)
return
}
const jsonData = res.json()
// 将 accessToken 写入环境变量 ACCESS_TOKEN
pm.environment.set('ACCESS_TOKEN', jsonData.body.token)
pm.environment.set(
'ACCESS_TOKEN_EXPIRES',
moment()
.add(1, 'days')
.valueOf(),
)
})
}
function isExpires() {
if (!accessTokenExpires)
return true
return new Date(accessTokenExpires) <= new Date()
}
if (!accessToken || isExpires())
sendLoginRequest()