返回顶部
首页 > 资讯 > 后端开发 > Python >python使用jenkins发送企业微信通知的实现
  • 579
分享到

python使用jenkins发送企业微信通知的实现

python发送企业微信通知python企业微信通知 2022-06-02 22:06:06 579人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

如果只是想实现将jenkins的构建结果发送到企业微信进行通知,最简便的方式是安装Qy Wechat Notification Plugin插件,网上教程很多就不重复写了,可参考: 一、前言 最近使用Jenkins进

如果只是想实现将jenkins的构建结果发送到企业微信进行通知,最简便的方式是安装Qy Wechat Notification Plugin插件,网上教程很多就不重复写了,可参考:

一、前言

最近使用Jenkins进行自动化部署,但是部署后,并没有相应的通知,虽然有邮件发送通知,但是发现邮件会受限于接收方的接收设置,导致不能及时看到相关的发布内容。而由于公司使用的是企业微信,因此考虑Jenkins通知企业微信机器人的实现方式。

二、使用企业微信推送的优势

实时提醒项目参与人员项目信息的更新情况

便于查看

三、配置

3.1 企业微信的配置

1.1 进入企业微信群

进入某个群 -> 右击群标签,添加群机器人
注意:企业微信貌似没有像钉钉那样设置配置群机器人权限,因此任何人都能添加机器人。相对于钉钉有点落后

1.2 填写机器人信息


企业微信的机器人相较于钉钉机器人而言,太简单了。

1.3 复制Hook地址

注意:此处的WEBhook将用于Jenkins当中的参数配置。

3.2 Jenkins的配置

2.1 安装插件

  • 进入系统管理
  • 进入管理插件
  • 搜索插件(Qy Wechat Notification)

安装插件后返回首页

2.2 配置Webhook

  • 进入 Jenkins Job
  • 进入 Job 配置
  • 前往构建后的操作 -> 选择企业微信通知

设置Webhook

3.3测试

  • 选择立即构建
  • 构建
  • 企业微信接收消息-推送结果

实现的效果如下:

以下是实现可配置的企业微信通知

建企业微信群,添加群机器人,获取机器人的webhook地址

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%

以上设置好,即可保存该项目

本次使用的是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 发送企业微信通知内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: python使用jenkins发送企业微信通知的实现

本文链接: https://lsjlt.com/news/10809.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python使用jenkins发送企业微信通知的实现
    如果只是想实现将jenkins的构建结果发送到企业微信进行通知,最简便的方式是安装Qy Wechat Notification Plugin插件,网上教程很多就不重复写了,可参考: 一、前言 最近使用Jenkins进...
    99+
    2022-06-02
    python 发送企业微信通知 python 企业微信通知
  • Python如何实现发送警告通知到企业微信
    这篇文章主要介绍“Python如何实现发送警告通知到企业微信”,在日常操作中,相信很多人在Python如何实现发送警告通知到企业微信问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python如何实现发送警告通...
    99+
    2023-06-26
  • Python实现发送警告通知到企业微信方法详解
    目录1. 新建应用2. 获取Secret常见的报警方式有:邮件,电话,短信,微信。 短信和电话,通常是收费的(若你有不收费的,可以评论分享一下),而邮件又不是那么及时,因此最后我选择...
    99+
    2024-04-02
  • 使用python怎么实现企业微信发送消息
    这篇文章给大家介绍使用python怎么实现企业微信发送消息,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、需要的参数1、通讯用户:touser 或 通讯组:toparty  &...
    99+
    2023-06-15
  • 怎么使用Python实现企业微信通知功能
    本篇内容主要讲解“怎么使用Python实现企业微信通知功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Python实现企业微信通知功能”吧!前言常见的通知方式有:邮件,电话,短信,微信...
    99+
    2023-06-30
  • 使用Python实现给企业微信发送消息功能
    目录一、概述二、python脚本三、企业微信设置1. 注册企业微信2. 点击进入管理后台3. 创建应用完成后4. 查看企业id5. 查看部门id四、测试脚本一、概述 本文将介绍如何使...
    99+
    2024-04-02
  • 使用Python实现企业微信通知功能案例分析
    目录前言1、新建应用2、获取Secret3、代码实现4、实现效果:前言 常见的通知方式有:邮件,电话,短信,微信。短信和电话:通常是收费的,较少使用;邮件:适合带文件类型的通知,较正...
    99+
    2024-04-02
  • 教你利用python实现企业微信发送消息
    目录一、需要的参数二、获取通讯用户/组三、获取企业ID四、获取应用ID/密钥五、脚本代码六、效果一、需要的参数 1、通讯用户:touser 或 通讯组:toparty ...
    99+
    2024-04-02
  • python调用mongodb发送微信企业号
    python2.x 注意:data变量里, agent_id为刚刚创建的应用id(可在web页面看到) toparty即为目标部门,或者可以用touser,totag指定目标账户 比较简单的...
    99+
    2024-04-02
  • 如何使用Python实现给企业微信发送消息功能
    如何使用Python实现给企业微信发送消息功能,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、概述下面将介绍如何使用python3给企业微信发送消息。我的环境是linux...
    99+
    2023-06-22
  • Python实现企业微信通知机器人的方法详解
    目录1.准备2.配置企业微信机器人3.Python 发送企业微信通知上次介绍了如何通过钉钉进行群通知,有同学反馈自己更习惯使用企业微信或公司使用了企业微信,希望也能出个基于Pytho...
    99+
    2023-02-07
    Python企业微信通知机器人 Python企业微信通知 Python企业微信
  • python应用之如何使用Python发送通知到微信
    目录一、通知方式有哪些?二、如何实现企业微信通知?1、新建应用2、获取Secret3、代码实现4、实现效果:三、参考资料总结一、通知方式有哪些? 常见的通知方式有:邮件,电话,短信,...
    99+
    2024-04-02
  • .NET Core实现企业微信消息推送
    接口定义 应用支持推送文本、图片、视频、文件、图文等类型。请求方式:POST(HTTPS)请求地址: https://qyapi.weixin.qq.com/cgi-bin...
    99+
    2024-04-02
  • Java实现微信小程序发送服务通知
    Java代码实现发送微信小程序服务通知 笔者在上个月接到一个需求,大概是需要计算一条数据的最大办理时间从而发送任务超期的微信小程序服务通知,俺也是第一次接触到需要调用微信的API去进行发送消息,该博客...
    99+
    2023-09-13
    微信小程序 java 小程序 spring cloud java-rabbitmq
  • PHP调用企信通短信接口实现短信发送
    企信通是目前国内最大的企业级短信服务提供商之一,其短信接口简单易用,为广大企业用户所喜爱。本文将介绍如何使用PHP调用企信通短信接口实现短信发送。一、申请企业短信接口账号首先,我们需要在企信通官网上申请企业短信接口账号。根据官网提示填写相关...
    99+
    2023-05-22
    PHP 短信发送 企信通
  • .NET Core如何实现企业微信消息推送
    这篇文章主要介绍了.NET Core如何实现企业微信消息推送的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇.NET Core如何实现企业微信消息推送文章都会有所收获,下面我们一起来看看吧。接...
    99+
    2023-07-02
  • 教你用Python发送告警通知到微信的操作过程
    常见的告警方式有:邮件,电话,短信,微信。 短信和电话,通常是收费的(若你有不收费的,可以评论分享一下),而邮件又不是那么及时,因此最后我选择微信通知。 这里说的微信,是企业微信,而...
    99+
    2024-04-02
  • 如何使用PHP开发微信小程序的推送通知功能?
    如何使用PHP开发微信小程序的推送通知功能?随着微信小程序的普及和应用,开发者经常需要向用户发送推送通知,以提醒用户关于小程序的重要信息或事件。本文将介绍如何使用PHP开发微信小程序的推送通知功能,并提供具体的代码示例来帮助开发者实现这一功...
    99+
    2023-10-26
    PHP开发微信小程序推送
  • NodeJS实现阿里大鱼短信通知发送
    1、说明 阿里大鱼提供了验证码,短信通知,语音等服务,在使用后感觉挺方便,不愧是阿里旗下的产品。 最近想搞个NodeJS发送短信通知的功能,这里没有使用 alidayu-node (开始做的时候并不知道有这...
    99+
    2022-06-04
    阿里 大鱼 短信
  • Java实现企业微信消息推送功能的详细步骤
    第一步:申请企业微信注册企业(链接:https://work.weixin.qq.com/nl/sem/registes=c&from=1011017189&bd_v...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作