• 使用Python实现给企业微信发送allure报告,并实现微信查看


    1、注册企业微信

    搜索企业微信直接注册

    2、创建应用

     

     3、查看企业id、Secret、应用id、部门id

     4、发送代码

    import os
    import jenkins
    import requests, json
    import urllib3
    urllib3.disable_warnings()
    
    ###填写参数###
    
    # Corpid是企业号的标识
    Corpid = "********"
    # Secret是管理组凭证密钥
    Secret = "**********"
    # 应用ID
    Agentid = "1000002"
    # 部门id
    Partyid = '1'
    # jenkins登录地址
    jenkins_url = "http://192.168.1.107:8080/"
    # 获取jenkins对象
    server = jenkins.Jenkins(jenkins_url, username='root', password='1234qwer')
    # job名称
    job_name = "job/轻萤/"
    # 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'
    
    
    def GetToken(Corpid, Secret):
        """获取access_token"""
        Url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken"
        Data = {
            "corpid": Corpid,
            "corpsecret": Secret
        }
        r = requests.get(url=Url, params=Data, verify=False)
        print(r.json())
        if r.json()['errcode'] != 0:
            return False
        else:
            Token = r.json()['access_token']
            return Token
    
    
    def SendMessage(Partyid):
        """发送消息"""
    
        Token = GetToken(Corpid, Secret)
        d = {}
        # 获取项目绝对路径
        path = os.path.abspath(os.path.dirname((__file__)))
        # 打开prometheusData 获取需要发送的信息
        f = open(path + r'/report/html/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://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Token
        Data = {
            "touser": "@all",#@all 所有人
            "toparty": Partyid,
            "msgtype": "text",
            "agentid": Agentid,
            "text": {
                   "content": "轻萤脚本执行完成。"
                              "\n测试概述:"
                              "\n运行总数:" + retries_run +
                              "\n通过数量:" + status_passed +
                              "\n失败数量:" + status_failed +
                              "\n构建地址:\n" + job_url +
                              "\n报告地址:\n" + report_url
    
               },
            "safe": "0"
        }
        r = requests.post(url=Url, data=json.dumps(Data), verify=False)
        # 如果发送失败,将重试三次
        n = 1
        while r.json()['errcode'] != 0 and n < 4:
            n = n + 1
            Token = GetToken(Corpid, Secret)
            if Token:
                Url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Token
                r = requests.post(url=Url, data=json.dumps(Data), verify=False)
                print(r.json())
        return r.json()
    
    
    if __name__ == '__main__':
        Status = SendMessage(Partyid)
        print(Status)

    5、jenkins中发送代码与测试项目关联

    详细请看之前写的这篇博客:https://www.cnblogs.com/MrqiuS/p/14211637.html

    6、微信扫码关注微信插件,实现微信中接收企业通知和使用企业应用。

     7、结果

  • 相关阅读:
    解析#pragma指令
    查看内核版本和发行版本

    unix 环境高级编成 apue.h ,apueerror.h的代码
    类string的构造函数、拷贝构造函数和析构函数 (转)
    归并排序
    C++ 中调用其他应用程序的方法
    [MySQL] MySQL的Grant命令
    static的作用
    白话经典算法系列之七 堆与堆排序 (转)
  • 原文地址:https://www.cnblogs.com/MrqiuS/p/16190641.html
Copyright © 2020-2023  润新知