电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

python使用jenkins發送企業微信通知的實現

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

如果只是想實現將jenkins的構建結果發送到企業微信進行通知,最簡便的方式是安裝Qy Wechat Notification Plugin插件,網上教程很多就不重復寫了,可參考:

一、前言

最近使用Jenkins進行自動化部署,但是部署后,并沒有相應的通知,雖然有郵件發送通知,但是發現郵件會受限于接收方的接收設置,導致不能及時看到相關的發布內容。而由于公司使用的是企業微信,因此考慮Jenkins通知企業微信機器人的實現方式。

二、使用企業微信推送的優勢

實時提醒項目參與人員項目信息的更新情況

便于查看

三、配置3.1 企業微信的配置

3.1.1 進入企業微信群

進入某個群 -> 右擊群標簽,添加群機器人注意:企業微信貌似沒有像釘釘那樣設置配置群機器人權限,因此任何人都能添加機器人。相對于釘釘有點落后

3.1.2 填寫機器人信息

python使用jenkins發送企業微信通知的實現

python使用jenkins發送企業微信通知的實現

企業微信的機器人相較于釘釘機器人而言,太簡單了。

3.1.3 復制Hook地址

python使用jenkins發送企業微信通知的實現

注意:此處的Webhook將用于Jenkins當中的參數配置。

3.2 Jenkins的配置

3.2.1 安裝插件

進入系統管理 進入管理插件 搜索插件(Qy Wechat Notification)

python使用jenkins發送企業微信通知的實現

安裝插件后返回首頁

3.2.2 配置Webhook

進入 Jenkins Job 進入 Job 配置 前往構建后的操作 -> 選擇企業微信通知

python使用jenkins發送企業微信通知的實現

設置Webhook

python使用jenkins發送企業微信通知的實現

3.3測試

選擇立即構建 構建 企業微信接收消息-推送結果

python使用jenkins發送企業微信通知的實現

實現的效果如下:

python使用jenkins發送企業微信通知的實現

以下是實現可配置的企業微信通知

1.建企業微信群,添加群機器人,獲取機器人的webhook地址

2.jenkins中創建項目,配置如下:

general下This project is parameterized,添加兩個string parameter

python使用jenkins發送企業微信通知的實現

分別為企業微信機器人的webhook和項目異常時需通知的責任人

python使用jenkins發送企業微信通知的實現

用戶默認值填對應企業微信群中的用戶名,才可保證發通知時能夠@到對應的人,多個用戶名之間用英文逗號隔開

python使用jenkins發送企業微信通知的實現

填寫構建執行命令

python使用jenkins發送企業微信通知的實現

構建命令說明如下:

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

以上設置好,即可保存該項目

3.本次使用的是robot框架,測試用例運行完成后控制臺輸出的日志導出到log.txt文件如下

python使用jenkins發送企業微信通知的實現

根據導出的日志獲取運行失敗的測試用例標題

#GetCaseTitle.py#通過控制臺輸出的日志查找是否有運行失敗的用例,如有則獲取失敗用例的標題 class GetCaseTitle: def __init__(self):self.file = 'log.txt' #使用jenkins運行測試用例時,會將控制臺輸出的日志保存到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: #如果標記為失敗的行數大于0 fail_case_line = fail_case_line[:-1] # 去掉最后1行的總運行結果行 fail_case_title = [] for title in fail_case_line: # 分別獲取失敗case的標題title = title.split(’|’)[0]if title not in fail_case_line[-1]: # 判斷當前是否是最后一個用例標題,是則后面不再添加|符號 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()

如存在運行失敗的測試用例,則發送企業微信通知

#wechatNotice.py#實現企業微信通知 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', # 消息類型,此時固定為markdown 'markdown': {'content': '提醒!線上UI測試計劃運行失敗 n' + f'測試報告鏈接:[{report_url}]({report_url}) n' + f'負責人:@{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獲取執行失敗的用例 if failcase: #如存在運行失敗的用例則發送企業微信通知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('測試通過')

發送通知的效果如下:

python使用jenkins發送企業微信通知的實現

到此這篇關于python使用jenkins發送企業微信通知的實現的文章就介紹到這了,更多相關python 發送企業微信通知內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

相關文章:
主站蜘蛛池模板: 体坛网_体坛+_体坛周报新闻客户端| 土壤检测仪器_行星式球磨仪_土壤团粒分析仪厂家_山东莱恩德智能科技有限公司 | 耐高温风管_耐高温软管_食品级软管_吸尘管_钢丝软管_卫生级软管_塑料波纹管-东莞市鑫翔宇软管有限公司 | 电缆接头_防水接头_电缆防水接头_防水电缆接头_上海闵彬 | 钢托盘,铁托盘,钢制托盘,镀锌托盘,饲料托盘,钢托盘制造商-南京飞天金属13260753852 | 钛板_钛管_钛棒_钛盘管-无锡市盛钛科技有限公司 | 400电话_400电话申请_866元/年_【400电话官方业务办理】-俏号网 3dmax渲染-效果图渲染-影视动画渲染-北京快渲科技有限公司 | 酵素生产厂家_酵素OEM_酵素加盟_酵素ODM_酵素原料厂家_厦门益力康 | 北京京云律师事务所 | 滑板场地施工_极限运动场地设计_滑板公园建造_盐城天人极限运动场地建设有限公司 | 定制奶茶纸杯_定制豆浆杯_广东纸杯厂_[绿保佳]一家专业生产纸杯碗的厂家 | 不锈钢复合板|钛复合板|金属复合板|南钢集团安徽金元素复合材料有限公司-官网 | 科普仪器菏泽市教育教学仪器总厂| 六维力传感器_三维力传感器_二维力传感器-南京神源生智能科技有限公司 | 镀锌方管,无缝方管,伸缩套管,方矩管_山东重鑫致胜金属制品有限公司 | 阜阳在线-阜阳综合门户 | 铸铁平台,大理石平台专业生产厂家_河北-北重机械 | 大巴租车平台承接包车,通勤班车,巴士租赁业务 - 鸿鸣巴士 | 山东集装箱活动房|济南集装箱活动房-济南利森集装箱有限公司 | 临沂招聘网_人才市场_招聘信息_求职招聘找工作请认准【马头商标】 | 宜兴市恺瑞德环保科技有限公司 | 阿尔法-MDR2000无转子硫化仪-STM566 SATRA拉力试验机-青岛阿尔法仪器有限公司 | 建筑消防设施检测系统检测箱-电梯**检测仪器箱-北京宇成伟业科技有限责任公司 | 分类168信息网 - 分类信息网 免费发布与查询| 能量回馈_制动单元_电梯节能_能耗制动_深圳市合兴加能科技有限公司 | 色油机-色母机-失重|称重式混料机-称重机-米重机-拌料机-[东莞同锐机械]精密计量科技制造商 | 智能汉显全自动量热仪_微机全自动胶质层指数测定仪-鹤壁市科达仪器仪表有限公司 | 耐高温硅酸铝板-硅酸铝棉保温施工|亿欧建设工程 | 北京工业设计公司-产品外观设计-产品设计公司-千策良品工业设计 北京翻译公司-专业合同翻译-医学标书翻译收费标准-慕迪灵 | 消防泵-XBD单级卧式/立式消防泵-上海塑泉泵阀(集团)有限公司 | 桥架-槽式电缆桥架-镀锌桥架-托盘式桥架 - 上海亮族电缆桥架制造有限公司 | 产业规划_产业园区规划-产业投资选址及规划招商托管一体化服务商-中机院产业园区规划网 | 烘箱-工业烘箱-工业电炉-实验室干燥箱 - 苏州华洁烘箱制造有限公司 | 上海公司注册-代理记账-招投标审计-上海昆仑扇财税咨询有限公司 上海冠顶工业设备有限公司-隧道炉,烘箱,UV固化机,涂装设备,高温炉,工业机器人生产厂家 | 上海地磅秤|电子地上衡|防爆地磅_上海地磅秤厂家–越衡称重 | 红立方品牌应急包/急救包加盟,小成本好项目代理_应急/消防/户外用品加盟_应急好项目加盟_新奇特项目招商 - 中红方宁(北京) 供应链有限公司 | 考勤系统_考勤管理系统_网络考勤软件_政企|集团|工厂复杂考勤工时统计排班管理系统_天时考勤 | 行吊_电动单梁起重机_双梁起重机_合肥起重机_厂家_合肥市神雕起重机械有限公司 | 播音主持培训-中影人教育播音主持学苑「官网」-中国艺考界的贵族学校 | 中式装修设计_全屋定制家具_实木仿古门窗花格厂家-喜迎门 | 断桥铝破碎机_发动机破碎机_杂铝破碎机厂家价格-皓星机械 |