jenkins連接釘釘發送測試報告


構建思路

  創建兩個釘釘機器人(一個機器人發送構建信息,一個機器人發送測試用例結果),發送構建結果可以通過jenkins的釘釘插件實現,發送測試結果可以通過獲取測試報告數據用代碼給釘釘發送實現。

  創建兩個任務,第一個任務使用jenkins插件,發送測試運行的結果(成功,失敗...)第二個任務關聯第一個任務,第一個任務觸發后,獲取最后一次的構建記錄,發送測試用例結果

發送構建結果

創建第一個釘釘機器人(怎么創建機器人就不做介紹了)

 

 jenkins安裝釘釘插件

系統管理-插件管理-可選插件搜索“釘釘”,我這已經安裝,安裝后重啟jenkins

 jenkins配置釘釘

系統管理-系統配置-釘釘

 點擊測試,如果釘釘機器人發送如圖:說明釘釘配置成功。

發送任務構建結果

在配置任務中打開釘釘機器人即可

 點擊立即構建,釘釘機器人就會發送構建結果如圖:

 發送測試用例結果

 python代碼

# 獲取jenkins構建信息和本次報告地址
import os
import jenkins #安裝pip install python-jenkins
import json
import urllib3


# jenkins登錄地址
jenkins_url = "http://*******8:8080/"
# 獲取jenkins對象
server = jenkins.Jenkins(jenkins_url, username='*****', password='*****') #Jenkins登錄名 ,密碼
# job名稱
job_name = "job/test_mock/" #Jenkins運行任務名稱
# job的url地址
job_url = jenkins_url + job_name
# 獲取最后一次構建
job_last_build_url = server.get_info(job_name)['lastBuild']['url']
# 報告地址
report_url = job_last_build_url + 'allure' #'allure'為我的Jenkins全局工具配置中allure別名

'''
釘釘推送方法:
讀取report文件中"prometheusData.txt",循環遍歷獲取需要的值。
使用釘釘機器人的接口,拼接后推送text
'''

def DingTalkSend():
    d = {}
    # 獲取項目絕對路徑
    path = os.path.abspath(os.path.dirname((__file__)))
    # 打開prometheusData 獲取需要發送的信息
    f = open(path + r'/allure-report/export/prometheusData.txt', 'r')
    for lines in f:
        for c in lines:
            launch_name = lines.strip('\n').split(' ')[0]
            num = lines.strip('\n').split(' ')[1]
            d.update({launch_name: num})
    print(d)
    f.close()
    retries_run = d.get('launch_retries_run')  # 運行總數
    print('運行總數:{}'.format(retries_run))
    status_passed = d.get('launch_status_passed')  # 通過數量
    print('通過數量:{}'.format(status_passed))
    status_failed = d.get('launch_status_failed')  # 不通過數量
    print('通過數量:{}'.format(status_failed))

    # 釘釘推送

    url = 'https://oapi.dingtalk.com/robot/send?access_token=***************'  # webhook
    con = {"msgtype": "text",
           "text": {
               "content": "Pytest_Allure_Demo自動化腳本執行完成。"
                          "\n測試概述:"
                          "\n運行總數:" + retries_run +
                          "\n通過數量:" + status_passed +
                          "\n失敗數量:" + status_failed +
                          "\n構建地址:\n" + job_url +
                          "\n報告地址:\n" + report_url
           }
           }
    urllib3.disable_warnings()
    http = urllib3.PoolManager()
    jd = json.dumps(con)
    jd = bytes(jd, 'utf-8')
    http.request('POST', url, body=jd, headers={'Content-Type': 'application/json'})


if __name__ == '__main__':
    DingTalkSend()

參考博客:https://blog.csdn.net/juejiang_lovingyou/article/details/104921840

將代碼放在jenkins生成allure報告同級目錄下

 創建第二個機器人(這里需要加入IP段)

ip獲取:可以先隨意填寫,去jenkins-系統配置-釘釘中測試,看錯誤提示信息,將提示的ip加入ip段中

比如:

 ip為123.232.***.***,就將這個ip加入到釘釘的IP段中,再將這個ip的123.232.***.0/24加入到IP段中,再點擊測試,重復前面操作,直到釘釘機器人發送消息

 創建第二個任務

構建運行節點

構建觸發器

 構建執行,運行代碼

 應用,保存。

構建第一個任務第二個任務也會觸發 ,釘釘將會收到如圖:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM