婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > python使用jenkins發送企業微信通知的實現

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

熱門標簽:小蘇云呼電話機器人 北瀚ai電銷機器人官網手機版 市場上的電銷機器人 佛山400電話辦理 儋州電話機器人 地圖標注面積 朝陽手機外呼系統 所得系統電梯怎樣主板設置外呼 北京電銷外呼系統加盟

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

一、前言

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

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

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

便于查看

三、配置

3.1 企業微信的配置

3.1.1 進入企業微信群

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

3.1.2 填寫機器人信息


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

3.1.3 復制Hook地址

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

3.2 Jenkins的配置

3.2.1 安裝插件

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

安裝插件后返回首頁

3.2.2 配置Webhook

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

設置Webhook

3.3測試

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

實現的效果如下:

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

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

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

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

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

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

填寫構建執行命令

構建命令說明如下:

#執行測試用例 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文件如下

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

#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_title
        else:
            return 0
 
if __name__ == "__main__":
    GetCaseTitle().get_fail_case_title()

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

#wechatNotice.py
#實現企業微信通知
 
import requests
import json
import urllib3
# import time
import sys
from GetCaseTitle import GetCaseTitle
 
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
 
class InformRobot:
    def __init__(self,url): #webhook地址
        self.url = url
        self.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 發送企業微信通知內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 新手必看docker安裝jenkins詳細教程
  • 幫你快速上手Jenkins并實現自動化部署
  • Jenkins+Docker持續集成的實現
  • jenkins+gitlab+nginx部署前端應用實現
  • 關于Jenkins + Docker + ASP.NET Core自動化部署的問題(避免踩坑)
  • 基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持續集成交付環境的詳細教程
  • 使用jenkins一鍵打包發布vue項目的實現
  • 使用Jenkins Dashboard插件可視化部署的方法
  • 使用jenkins部署springboot項目的方法步驟
  • 關于jenkins插件下載失敗的解決方法
  • Windows環境下實現Jenkins部署的教程詳解
  • Jenkins系統如何進行數據備份

標簽:金融催收 定西 龍巖 商丘 寧夏 酒泉 云南 江蘇

巨人網絡通訊聲明:本文標題《python使用jenkins發送企業微信通知的實現》,本文關鍵詞  python,使用,jenkins,發送,企業,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python使用jenkins發送企業微信通知的實現》相關的同類信息!
  • 本頁收集關于python使用jenkins發送企業微信通知的實現的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 垦利县| 巍山| 宣城市| 原平市| 彭山县| 凌源市| 上饶市| 荆州市| 利津县| 稻城县| 永福县| 台湾省| 阿合奇县| 晋州市| 汉寿县| 东方市| 潮州市| 武陟县| 华蓥市| 勐海县| 灌阳县| 鄂托克前旗| 黄山市| 黔西县| 邢台县| 云梦县| 若尔盖县| 长武县| 朝阳县| 玉林市| 雅江县| 获嘉县| 南通市| 梨树县| 北海市| 尤溪县| 深水埗区| 遂溪县| 恩施市| 贵溪市| 惠来县|