国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python使用jenkins發(fā)送企業(yè)微信通知的實(shí)現(xiàn)

瀏覽:26日期:2022-06-14 16:51:51

如果只是想實(shí)現(xiàn)將jenkins的構(gòu)建結(jié)果發(fā)送到企業(yè)微信進(jìn)行通知,最簡(jiǎn)便的方式是安裝Qy Wechat Notification Plugin插件,網(wǎng)上教程很多就不重復(fù)寫了,可參考:

一、前言

最近使用Jenkins進(jìn)行自動(dòng)化部署,但是部署后,并沒有相應(yīng)的通知,雖然有郵件發(fā)送通知,但是發(fā)現(xiàn)郵件會(huì)受限于接收方的接收設(shè)置,導(dǎo)致不能及時(shí)看到相關(guān)的發(fā)布內(nèi)容。而由于公司使用的是企業(yè)微信,因此考慮Jenkins通知企業(yè)微信機(jī)器人的實(shí)現(xiàn)方式。

二、使用企業(yè)微信推送的優(yōu)勢(shì)

實(shí)時(shí)提醒項(xiàng)目參與人員項(xiàng)目信息的更新情況

便于查看

三、配置3.1 企業(yè)微信的配置

3.1.1 進(jìn)入企業(yè)微信群

進(jìn)入某個(gè)群 -> 右擊群標(biāo)簽,添加群機(jī)器人注意:企業(yè)微信貌似沒有像釘釘那樣設(shè)置配置群機(jī)器人權(quán)限,因此任何人都能添加機(jī)器人。相對(duì)于釘釘有點(diǎn)落后

3.1.2 填寫機(jī)器人信息

python使用jenkins發(fā)送企業(yè)微信通知的實(shí)現(xiàn)

python使用jenkins發(fā)送企業(yè)微信通知的實(shí)現(xiàn)

企業(yè)微信的機(jī)器人相較于釘釘機(jī)器人而言,太簡(jiǎn)單了。

3.1.3 復(fù)制Hook地址

python使用jenkins發(fā)送企業(yè)微信通知的實(shí)現(xiàn)

注意:此處的Webhook將用于Jenkins當(dāng)中的參數(shù)配置。

3.2 Jenkins的配置

3.2.1 安裝插件

進(jìn)入系統(tǒng)管理 進(jìn)入管理插件 搜索插件(Qy Wechat Notification)

python使用jenkins發(fā)送企業(yè)微信通知的實(shí)現(xiàn)

安裝插件后返回首頁(yè)

3.2.2 配置Webhook

進(jìn)入 Jenkins Job 進(jìn)入 Job 配置 前往構(gòu)建后的操作 -> 選擇企業(yè)微信通知

python使用jenkins發(fā)送企業(yè)微信通知的實(shí)現(xiàn)

設(shè)置Webhook

python使用jenkins發(fā)送企業(yè)微信通知的實(shí)現(xiàn)

3.3測(cè)試

選擇立即構(gòu)建 構(gòu)建 企業(yè)微信接收消息-推送結(jié)果

python使用jenkins發(fā)送企業(yè)微信通知的實(shí)現(xiàn)

實(shí)現(xiàn)的效果如下:

python使用jenkins發(fā)送企業(yè)微信通知的實(shí)現(xiàn)

以下是實(shí)現(xiàn)可配置的企業(yè)微信通知

1.建企業(yè)微信群,添加群機(jī)器人,獲取機(jī)器人的webhook地址

2.jenkins中創(chuàng)建項(xiàng)目,配置如下:

general下This project is parameterized,添加兩個(gè)string parameter

python使用jenkins發(fā)送企業(yè)微信通知的實(shí)現(xiàn)

分別為企業(yè)微信機(jī)器人的webhook和項(xiàng)目異常時(shí)需通知的責(zé)任人

python使用jenkins發(fā)送企業(yè)微信通知的實(shí)現(xiàn)

用戶默認(rèn)值填對(duì)應(yīng)企業(yè)微信群中的用戶名,才可保證發(fā)通知時(shí)能夠@到對(duì)應(yīng)的人,多個(gè)用戶名之間用英文逗號(hào)隔開

python使用jenkins發(fā)送企業(yè)微信通知的實(shí)現(xiàn)

填寫構(gòu)建執(zhí)行命令

python使用jenkins發(fā)送企業(yè)微信通知的實(shí)現(xiàn)

構(gòu)建命令說明如下:

#執(zhí)行測(cè)試用例 pybot.bat 用例路徑#將控制臺(tái)輸出導(dǎo)出到log.txt文件,控制臺(tái)不再打印日志 >log.txt #如果前面一條指令執(zhí)行失敗才執(zhí)行||后面的指令 ||#如果前面一條指令執(zhí)行成功才執(zhí)行&&后面的指令 &&#執(zhí)行python腳本,發(fā)送企業(yè)微信通知,傳入webhook地址,jenkins項(xiàng)目名稱,發(fā)送通知@責(zé)任人 python ../wechatNotice.py %url% %JOB_NAME% %principal%pybot.bat 目錄名稱/***.robot >log.txt || python ../wechatNotice.py %url% %JOB_NAME% %principal%

以上設(shè)置好,即可保存該項(xiàng)目

3.本次使用的是robot框架,測(cè)試用例運(yùn)行完成后控制臺(tái)輸出的日志導(dǎo)出到log.txt文件如下

python使用jenkins發(fā)送企業(yè)微信通知的實(shí)現(xiàn)

根據(jù)導(dǎo)出的日志獲取運(yùn)行失敗的測(cè)試用例標(biāo)題

#GetCaseTitle.py#通過控制臺(tái)輸出的日志查找是否有運(yùn)行失敗的用例,如有則獲取失敗用例的標(biāo)題 class GetCaseTitle: def __init__(self):self.file = 'log.txt' #使用jenkins運(yùn)行測(cè)試用例時(shí),會(huì)將控制臺(tái)輸出的日志保存到log.txt文件 def get_fail_case_title(self):fail_case_line = []file = open(self.file, ’r’, encoding=’gbk’)for line in file: # 查找失敗的用例行 if 'FAIL' in line:line = str(line).replace(' ', '')fail_case_line.append(line)file.close() if len(fail_case_line)>0: #如果標(biāo)記為失敗的行數(shù)大于0 fail_case_line = fail_case_line[:-1] # 去掉最后1行的總運(yùn)行結(jié)果行 fail_case_title = [] for title in fail_case_line: # 分別獲取失敗case的標(biāo)題title = title.split(’|’)[0]if title not in fail_case_line[-1]: # 判斷當(dāng)前是否是最后一個(gè)用例標(biāo)題,是則后面不再添加|符號(hào) fail_case_title.append(title + ’ | ’)else: fail_case_title.append(title) fail_case_title = ’’.join(fail_case_title) return fail_case_titleelse: return 0 if __name__ == '__main__': GetCaseTitle().get_fail_case_title()

如存在運(yùn)行失敗的測(cè)試用例,則發(fā)送企業(yè)微信通知

#wechatNotice.py#實(shí)現(xiàn)企業(yè)微信通知 import requestsimport jsonimport urllib3# import timeimport sysfrom GetCaseTitle import GetCaseTitle urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) class InformRobot: def __init__(self,url): #webhook地址self.url = urlself.sess = requests.session() def markdown_robot(self, report_url, principal, failcase):data = { 'msgtype': 'markdown', # 消息類型,此時(shí)固定為markdown 'markdown': {'content': '提醒!線上UI測(cè)試計(jì)劃運(yùn)行失敗 n' + f'測(cè)試報(bào)告鏈接:[{report_url}]({report_url}) n' + f'負(fù)責(zé)人:@{principal} n' f'失敗用例名稱:{failcase}' }} re_post = self.sess.post(self.url, data=json.dumps(data), verify=False)print(re_post.content, data) if __name__ == '__main__': failcase = GetCaseTitle().get_fail_case_title() #從GetCaseTitle.py獲取執(zhí)行失敗的用例 if failcase: #如存在運(yùn)行失敗的用例則發(fā)送企業(yè)微信通知url=sys.argv[1]projectname = sys.argv[2]principal = sys.argv[3]# execute_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())report_url = 'http://172.18.1.1:8080/job/' + projectname + '/ws/log.html'InformRobot(url).markdown_robot(report_url, principal, failcase) else:print('測(cè)試通過')

發(fā)送通知的效果如下:

python使用jenkins發(fā)送企業(yè)微信通知的實(shí)現(xiàn)

到此這篇關(guān)于python使用jenkins發(fā)送企業(yè)微信通知的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)python 發(fā)送企業(yè)微信通知內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: 微信 Python 編程語(yǔ)言
相關(guān)文章:
主站蜘蛛池模板: 久久国产精品最新一区 | 久久综合婷婷香五月 | 精品自拍视频 | 在线观看片成人免费视频 | 国产高清厕所盗摄视频 | 一级片 720p| 日韩高清不卡在线 | 国产乱子伦在线观看不卡 | 精品午夜国产在线观看不卡 | 国产大臿蕉香蕉大视频 | 夜色邦合成福利网站 | 国产精品无打码在线播放9久 | 亚洲欧美久久一区二区 | 日韩精品中文字幕在线观看 | 97在线精品 | 成人欧美一区二区三区在线 | 她也啪在线视频精品网站 | 99久国产| 男人的天堂欧美精品色偷偷 | 碰超在线观看 | 91香蕉国产在线观看免费永久 | 国产福利精品在线观看 | 国产三级小视频 | 特级一级毛片免费看 | 欧美jizz19性欧美 | 欧美午夜精品久久久久免费视 | 一区二区三区视频 | 日韩一级欧美一级一级国产 | 精品视频一区二区三区 | 精品一区二区三区在线成人 | 国产精品videossex另类 | 精品免费久久久久欧美亚一区 | 国产一级特黄a大片99 | 一国产一级淫片a免费播放口 | 精品免费国产 | 亚洲资源在线播放 | 萌白酱白丝护士服喷水铁牛tv | 欧美视频一级 | 久久久久久久久影院 | 欧美一级www片免费观看 | 免费高清国产 |