ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

mochajs框架发送报告到Slack和企业微信

2021-07-02 19:00:27  阅读:189  来源: 互联网

标签:totalTestNumber console Slack mochajs 微信 let passedNum report log


//环境变量相关的
let configENV = XXXXX
let totalTestNumber = 0;
let passedNum = 0;
let reportURL = configENV.reportURL
let wxHook = configENV.wxHook
let slackHook = configENV.slackHook
let testEnv = configENV.testEnv  //测试环境信息
// 统计运行测试个数
afterEach(async function () {
    if (this.currentTest.state === "passed") {
        passedNum = passedNum + 1
    }
    totalTestNumber = totalTestNumber + 1
    console.log(totalTestNumber, ":", this.currentTest.title, "--<run status>--", this.currentTest.state)
})


// 统计结果并发送消息
after(async function () {
    try {
        if (wxHook && reportURL) {
            console.log("send wx report")
            await sendWXReport(wxHook)
        }
        if (slackHook && reportURL) {
            let slackToken = configENV.slackHook.token
            let slackChannel = configENV.slackHook.channel
            await sendSlackReport(slackToken, slackChannel)
            console.log("send slack report")
        }
    }
    catch (err) {
        console.log(err)
    }
})


/**
 * 向企业微信发送测试报告
 * @param {*} wxURL 
 * @param {*} reportURL 
 * @returns 
 */
function sendWXReport(wxURL) {
    return new Promise(function (resolve, reject) {
        request.post({
            url: wxURL,
            body: JSON.stringify({
                "msgtype": "markdown",
                "markdown": {
                    "content": `API TEST RESULT
                    >Total: ${totalTestNumber} Pass: ${passedNum} Fail: ${totalTestNumber - passedNum}
                    >env: ${testEnv}
                    >report:[report url](${reportURL})`
                }
            })
        }
        ), function (err, responded, body) {
            if (err) {
                console.log('send report failed', err);
                console.log(err)
                reject(err)
            }
            console.log('send report successful!  Server responded with:', body);
            resolve(body)
        }
    })
}


/**
 * 向slack指定channel发送消息
 * @param {*} token 
 * @param {*} channel 
 */
async function sendSlackReport(token, channel) {
    const web = new WebClient(token);
    let result = await web.chat.postMessage({
        "type": "section",
        "channel": channel,
        "text": {
            "type": "mrkdwn",
            "text": `API TEST RESULT:\n
            \tTotal:${totalTestNumber} Pass:${passedNum} Fail: ${totalTestNumber - passedNum} \n
            \tenv: ${testEnv}\n
            \treport:[report url](${reportURL})
            `
        }
    });
    console.log(JSON.stringify(result))
}

标签:totalTestNumber,console,Slack,mochajs,微信,let,passedNum,report,log
来源: https://blog.csdn.net/qq_28207005/article/details/118421530

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有