Apifox 常用 JS 脚本

前置脚本常用

1、时间戳生成(秒级):

// 1、生成秒级时间戳到全局变量中
//let timestamp = parseInt(new Date().getTime() / 1000)
//pm.globals.set('timestamp', timestamp)
// 2、生成秒级时间戳到全局变量中
pm.globals.set('timestamp', pm.variables.replaceIn("{{$timestamp}}"))

2、 生成随机字符串

// 保存到全局变量中
let username = generateRandomStr("yanchi_", "@test.com", 8)
pm.globals.set("username", username)
console.log(username)

/**
 * 生成随机字符串
 * @param prefix 字符串前缀
 * @param suffix 字符串后缀
 * @param length 随机的字符串长度(不包含前缀和后缀,默认长度 6)
 * @returns {string} 返回总字符串
 */
function generateRandomStr(prefix = '', suffix = '', length = 6) {
    let characters = 'abcdefghijklmnopqrstuvwxyz0123456789';
    let randomStr = '';

    // 生成随机用户名
    for (let i = 0; i < length; i++) {
        let randomIndex = Math.floor(Math.random() * characters.length);
        randomStr += characters[randomIndex];
    }

    return `${prefix}${randomStr}${suffix}`;
}


console.log(generateRandomStr("yanchi_", "@test.com", 8))

后置脚本常用

1、用例断言

let caseName = pm.info.requestName

// 得到括号内的所有内容
let reg1 = /\(.*\)/
let parenthesisContent = caseName.match(reg1)[0]

// 得到括号内的状态码。
let reg2 = /\d+/g
let caseStatus = parenthesisContent.match(reg2)

// 判断用例状态码是否存在
if (caseStatus){
    // 只取最后一位数字作为状态码
    caseStatus = caseStatus[caseStatus.length - 1]
    let jsonData = pm.response.json()
    pm.test("返回值:\n" + JSON.stringify(jsonData), function () {
        // 返回值断言
        pm.expect(
            jsonData.status == caseStatus
        ).to.be.true;
    })
     console.log('当前用例参与断言,状态码为:' + caseStatus)
}else {
    // 用例不含有状态码
    console.log('当前用例不参与断言')
}

2、返回值日志输出到断言中

let jsonData = pm.response.json()
pm.test("返回值:\n" + JSON.stringify(jsonData), function () {
    // 状态码断言
    pm.response.to.have.status(200)
    // 返回值断言
    pm.expect(
        jsonData.code == '000'
    ).to.be.true;
})

你可能感兴趣的:(javascript,开发语言,ecmascript)