1小時學(xué)會jenkins集成郵件/微信/釘釘通知

本文章出自【碼同學(xué)軟件測試】


01??? 郵件通知

郵件擴展插件安裝Email Extension Plugin,如果已經(jīng)安裝了則不需要再裝該插件可以提供更詳細的郵件發(fā)送設(shè)置

碼同學(xué)公眾號:自動化軟件測試

碼同學(xué)抖音號:小碼哥聊軟件測試

QQ郵箱準備公司里會用企業(yè)郵箱作為發(fā)件人,相關(guān)信息找郵箱管理員咨詢。本例中采用qq郵箱作為郵件管理員及發(fā)件人

1、開啟 QQ 郵箱 SMTP 服務(wù),打開 QQ 郵箱進入設(shè)置

2、進入帳戶

3、開啟SMTP服務(wù)

4、發(fā)送驗證碼到指定號碼

5、獲取授權(quán)碼,保存此授權(quán)碼到 txt 文件中,Jenkins 中配置郵箱需要用到此授權(quán)碼

6、點擊確定,SMTP服務(wù)已開啟

jenkins自帶郵件配置在這里可以先測試一下我們的郵箱配置是否正確,郵件能否發(fā)送成功進入系統(tǒng)管理-->系統(tǒng)配置,做如下配置先增加系統(tǒng)管理員郵件地址找郵件通知的區(qū)域,進行配置及測試

點擊測試后提示成功,并且郵箱會收到一封郵件,說明郵件發(fā)送沒有什么問題

配置擴展郵箱該配置將會作為我們jenkins任務(wù)執(zhí)行完成后的郵件模板進入系統(tǒng)管理-->系統(tǒng)配置,找到Extended E-mail Notification區(qū)域,做如下配置:

如果想看任務(wù)發(fā)送郵件時的詳細日志可以勾選下述選項,主要是郵件發(fā)送有問題時進行調(diào)試使用的

02?? 釘釘通知

安裝釘釘通知插件

登錄釘釘,配置釘釘機器人參考鏈接:https://developers.dingtalk.com/document/robots/custom-robot-access

jenkins里配置釘釘進入系統(tǒng)管理-->系統(tǒng)配置,找到釘釘區(qū)域,做如下配置

jenkins 任務(wù)配置釘釘機器人只支持自由風(fēng)格的任務(wù),不支持maven風(fēng)格的,所以我們先創(chuàng)建一個自由風(fēng)格的試一試

1、創(chuàng)建自由風(fēng)格的項目

2、保存后立即構(gòu)建可以看到釘釘群就收到了任務(wù)執(zhí)行的消息

03?? 微信通知

先檢查jdk配置如果jdk是openjdk的版本,那么一定要卸載,用oracle的jdk,否則可能會出錯

安裝微信通知插件

登錄企業(yè)微信,添加微信機器人1、群消息右鍵,點擊添加機器人

2、點擊添加一個機器人后,點擊新創(chuàng)建一個機器人

3、輸入機器人名稱,點擊添加

jenkins 任務(wù)配置微信通知進入任務(wù)配置界面,拉到最下面,添加企業(yè)微信通知

做如下設(shè)置:

執(zhí)行任務(wù),企業(yè)微信群收到通知

免費領(lǐng)取?碼同學(xué)軟件測試?課程筆記+超多學(xué)習(xí)資料+完整視頻+最新面試題,可以轉(zhuǎn)發(fā)文章?+?私信「碼同學(xué)666」獲取資料哦

04?? 郵件內(nèi)容模板

郵件模板

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>$PROJECT_NAME-第$BUILD_NUMBER次構(gòu)建日志</title>

</head>

<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"? offset="0">? ?

? ? <div>?

? ? <table width="95%" cellpadding="0" cellspacing="0"? ? style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">

? ? <tr>? ? ? ? ?

? ? ? ? <th align="center" colspan="2"><br />

? ? ? ? ? ? <h2>構(gòu)建信息</h2>? ? ? ? ? ?

? ? ? ? </th>? ? ?

? ? </tr>? ? ?

? ? ? <tr>? ? ? ? ? ?

? ? ? ? <td>? ? ? ? ? ? ? ?

? ? ? ? ? ? <ul>? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? <li>項目名稱 :$PROJECT_NAME</li><br />? ? ? ? ? ? ?

? ? ? ? ? ? ? <li>代碼覆蓋率報告:<a href=${BUILD_URL}jacoco target='_blank'>${BUILD_URL}jacoco</a></li><br />?

? ? ? ? ? ? ? <li>sonar掃描報告:<a href=http://192.168.0.107:9000/dashboard?id=jacocoaa1${BUILD_NUMBER} target='_blank'>http://192.168.0.107:9000/dashboard?id=jacocoaa1${BUILD_NUMBER}</a></li><br />? ? ? ? ? ? ? ?

? ? ? ? ? ? ? <li>詳細測試日志 :<a href=${BUILD_URL}console target='_blank'>${BUILD_URL}console</a></li><br />?

? ? ? ? ? ? ? <li>觸發(fā)原因:${CAUSE}</li><br />? ? ? ?

? ? ? ? ? ? ? <li>項目Url :<a href=‘$BUILD_URL’ target='_blank'>$BUILD_URL</a></li><br />? ? ? ? ?

? ? ? ? ? </ul>? ? ? ? ? ?

? ? ? ? </td>? ? ? ? ?

? ? ? ? <td height="350px" style="overflow:hidden;display:block">${JELLY_SCRIPT,template="html"}<br/>

? ? ? </tr>? ?

? ? </table>? ?

? </div>

</body>

</html>

如何知道jenkins都有哪些內(nèi)置變量?(記得把ip換成你自己的)

地址:http://192.168.0.108:8080/env-vars.html/

05?? 釘釘和微信通知拓展

釘釘只能用在自由風(fēng)格的項目,而微信通知又不能自定義消息內(nèi)容,都不是很完美

那么我們可以自定義腳本的方式來擴展這部分,在任務(wù)構(gòu)建后去執(zhí)行某段腳本來達到我們的目的,構(gòu)建后執(zhí)行腳本需要如下插件

熟悉釘釘機器人消息接口https://developers.dingtalk.com/document/robots/custom-robot-access可以采用接口測試工具先調(diào)試接口,調(diào)試通了以后再編寫腳本

編輯post build里的腳本如下:

#訪問當前任務(wù)的結(jié)果api,并將結(jié)果存儲在result.json文件中curl -u admin:123456 ${BUILD_URL}api/json>result.json#使用awk對result.json做解析,得到任務(wù)執(zhí)行結(jié)果result=$(awk -F '"result":' '{print $2}' result.json|awk -F '[",]' '{print $1$2}')echo ${result}#使用awk對result.json做解析,得到任務(wù)執(zhí)行人user=$(awk -F '"userName":' '{print $2}' result.json|awk -F '[",]' '{print $1$2}')echo ${user}#使用curl調(diào)用釘釘?shù)膚ebhook地址,并將和任務(wù)有關(guān)的變量拼接在參數(shù)text參數(shù)中curl 'https://oapi.dingtalk.com/robot/send?access_token=b23d3a9cf410a4f7b4b05b1e5fe73ead7f589aa92572bd367cbb919d46904c6b' \? -H 'Content-Type: application/json' \? -d '{? ? ? ? "msgtype": "markdown",? ? ? ? "markdown": {? ? ? ? ? ? "title":"dingding",? ? ? ? ? ? "text": "#### '${JOB_NAME}'項目掃描任務(wù)? \n - 任務(wù):第'${BUILD_NUMBER}'次\n - 狀態(tài):'${result}' \n - 執(zhí)行人: '${user}' \n \n[查看控制臺]('${BUILD_URL}')"? ? ? },? ? ? "at": {? ? ? ? ? "atMobiles": [? ? ? ? ? ],? ? ? ? ? "atUserIds": [? ? ? ? ? ],? ? ? ? ? "isAtAll": false? ? ? } }'

最終收到的消息:

熟悉微信機器人的消息接口在企業(yè)微信機器人配置界面可以看到接口相關(guān)信息

可以采用接口測試工具先調(diào)試接口,調(diào)試通了以后再編寫腳本

編輯post build里的腳本如下:

#訪問當前任務(wù)的結(jié)果api,并將結(jié)果存儲在result.json文件中curl -u admin:123456 ${BUILD_URL}api/json>result.json#使用awk對result.json做解析,得到任務(wù)執(zhí)行結(jié)果result=$(awk -F '"result":' '{print $2}' result.json|awk -F '[",]' '{print $1$2}')echo ${result}#使用awk對result.json做解析,得到任務(wù)執(zhí)行人user=$(awk -F '"userName":' '{print $2}' result.json|awk -F '[",]' '{print $1$2}')echo ${user}#使用curl調(diào)用微信的webhook地址,并將和任務(wù)有關(guān)的變量拼接在參數(shù)content參數(shù)中curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=a2a30ae8-4c5f-4302-9820-dc8b92d2f510' \? -H 'Content-Type: application/json' \? -d '{? ? ? ? "msgtype": "markdown",? ? ? ? "markdown": {? ? ? ? ? ? "content": "#### '${JOB_NAME}'項目掃描任務(wù)1? \n - 任務(wù):第'${BUILD_NUMBER}'次\n - 狀態(tài):'${result}' \n - 執(zhí)行人: '${user}' \n <@沙陌> \n \n[查看控制臺]('${BUILD_URL}') "? ? ? }}'

最終收到的消息:


END

免費領(lǐng)取碼同學(xué)軟件測試課程筆記+超多學(xué)習(xí)資料+學(xué)習(xí)完整視頻,可以關(guān)注我們公眾號哦:自動化軟件測試

本文著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請聯(lián)系作者獲得授權(quán)并注明出處。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容