自动化执行 - 钉钉机器人通知

背景

公司内部用钉钉来办公,钉钉支持机器人提醒,有各种各样的机器人提供选择,可以根据需求来定制机器人,达到提醒功能,如提醒某人请下午茶,233

思路

1. 添加机器人到群组中,这次将的是“自定义”机器人;

2. 添加后会发现有一个webhook的链接,可以点击“设置说明”查看详情

3. 可以通过post请求网这个webhook发送信息,机器人就可以在群里展示信息,文档里有定义不同的请求body;

 文档地址:https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.karFPe&treeId=257&articleId=105735&docType=1

 这里需要吐槽的一点,目前只发现text类型支持换行

4. 关键就是post请求里面的信息的填充,如果想到用python来处理;

5. 编写python脚本:大致思路就是解析自动化result文件,组装post请求

 实际代码如下:

  

import requests
import time
import json
import sys
import hashlib
import xml.dom.minidom

HEADERS = {‘ua‘: ‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.125 Safari/537.36‘}
DINGDING_URL= ‘https://oapi.dingtalk.com/robot/send?access_token=your_access_token‘
RESULT_FILE= ‘/var/lib/jenkins/workspace/wm-api-autotest/target/surefire-reports/testng-results.xml‘
REPORT_URL_FILE= ‘/var/lib/jenkins/workspace/wm-api-autotest/target/allure-results/executor.json‘

class Message():

    def __init__(self):
        self.total=0;
        self.passed=0;
        self.failed=0;
        self.skipped=0;
        self.reportUrl="";

    #解析文件获取结果数据
    def analyze(self):
        #打开xml文档
        dom = xml.dom.minidom.parse(RESULT_FILE)
        #得到文档元素对象

        root = dom.documentElement
        self.total = root.getAttribute(‘total‘)
        self.passed = root.getAttribute(‘passed‘)
        self.failed = root.getAttribute(‘failed‘)
        self.skipped = root.getAttribute(‘skipped‘)

        #构建的次数统计在json文件中
        file = open(REPORT_URL_FILE,‘r‘)
        self.reportUrl=json.load(file)[‘reportUrl‘]

    #发送报告
    def send_message_to_robot(self):
        url= DINGDING_URL
        message=‘wm-api自动化执行结果:\n本次执行了{}条用例;\n成功了{}条;\n失败了{}条;\n跳过了{}条;\n查看详情请点击=> {}‘.format(self.total,self.passed,self.failed,self.skipped,self.reportUrl)
        data={"msgtype":"text","text":{"content":message,"title":"wm-api自动化结果通知"}}
        try:
            resp = requests.post(url,headers=HEADERS,json=data,timeout=(3,60))
        except:
            print ("Send Message is fail!");

if __name__ == ‘__main__‘:
    message = Message()
    message.analyze();
    message.send_message_to_robot();

6. jenkins设置,需要新增一个插件“Post build task”,用于构建后执行shell命令

7. 实际结果展示:

小结

1. 之前用邮件提醒,但邮件这东西容易被忽略,可以借助其他工具,如钉钉提醒;

2. 多接触/尝试新的东西没错;

时间: 2024-08-29 23:49:24

自动化执行 - 钉钉机器人通知的相关文章

用Python实现阿里钉钉机器人读取数据库内容自动发群通知

最近想把一些预警数据信息按照一定的要求自动发送到移动端APP,最终把目标放在了腾讯的微信和阿里的钉钉软件上,由于刚开始学习python,于是编程工具想用python来实现.微信使用群体最广,通过一天的研究用itchat库已经实现,但由于itchat需要用web微信方式登录,发现微信对新注册的用户关闭了web微信功能,于是考虑用备选方案阿里钉钉来实现,其实阿里钉钉虽然没有微信用户群体庞大,但是在企业应用方面比微信强大了太多,很多企业已经开始开始用钉钉作为内部沟通工具. 一.工作准备 1.Pytho

重新拾取:TFS2017钉钉机器人源代码签入通知

http://www.cnblogs.com/79039535/p/9316791.html 现在很多公司办公都使用钉钉打卡签到,于是鉴于公司也使用钉钉就打算用钉钉来做一个源代码签入通知. 首先先去打开官方网站了解钉钉的通知,钉钉机器人提供了很多模板(GitHub啊,GitLab啊, Coding啊) 但是没有TFS~ 哈哈! 这里我们选择 自定义机器人 <钉钉开放平台机器人文档> 设置机器人名字,就是聊天对话时显示的名称 拿到webhook就可以进行服务挂钩了~. 现在登录你的TFS站点 -

jenkins 集成钉钉机器人通知

公司使用钉钉做为公司内部的通讯工具,所以想通过Jenkins发布完成以后通过钉钉来通知大家,研究发现钉钉提供机器人,所以我把机器人集成进来通知相关人员. 1.创建通知人群组,添加机器人(钉钉默认自带了配置好的机器人,但是没有Jenkins机器人): 注意:钉钉机器人的配置需要在PC端完成: 2.获取自定义机器人webhook 3.jenkins 安装"Dingding[钉钉] Plugin"插件: 4.插件安装完成后,创建/修改任务中,在"构建后的操作"->&

钉钉机器人自定义通知-python

创建一个钉钉群然后添加一个自定义的机器人 安全设置是必填项 自定义关键字:报警 钉钉发送通知时,必须包含 关键子 "报警" 不然会 报 keyword not in content. 钉钉文档: https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq 机器人创建成功后,针对文档中发送钉消息类型选择合适的进行触发. python 脚本 body={ "msgtype": "markdown", &q

通知神器——java调用钉钉群自定义机器人

创建群自定义机器人 在指定钉钉群(或者随便拉两个人建个群,然后把别人T出去)的群设置里选择 群机器人 -> 自定义,如图: 然后,添加机器人,设置名字,添加成功时如下图: 其中webhook非常重要,下文详述.点击设置说明可以看相关使用文档,文档链接见本文末尾. 使用HTTP POST请求发送消息 直接向上文所述的webhook链接发送POST请求已达到自定义机器人向群内发消息的功能 按照文档中所属的参数格式直接向链接发送请求即可,我使用Postman发送请求如下: 效果如下: 发送其他格式(如

shell 操作钉钉机器人实现告警提醒

我们知道,之前的运维告警多通过mail 等方式通知到相应的人员,难以实现随时随地的查看.随着手机APP的发展,很多告警开始发送到IM软件上去.目前比较常用的是发送到微信和钉钉上,今天我们将重点放在钉钉上.群机器人是钉钉群的高级扩展功能,群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步.借助钉钉机器人,通过官方提供的API,可以很方便的post数据到相应的接收人 .群机器人支持Webhook协议的自定义接入,支持更多可能性,例如:你可将运维报警通过自定义机器人聚合到钉钉群实现提醒功

【转】[钉钉通知系列]Jenkins发布后自动通知

转载请注明出处:https://www.cnblogs.com/jianxuanbing/p/7211006.html 阅读目录 一.前言 二.使用钉钉推送的优势 三.配置 一.前言 最近使用Jenkins进行自动化部署,但是发布署后,并没有相应的通知,虽然有邮件发送通知,但是发现邮件会受限于大家接受的设置,导致不能及时看到相关的发布内容.由于之前有用Gitlab推送消息到钉钉的方式,因此考虑Jenkins是否能通知到钉钉的实现方式. 二.使用钉钉推送的优势 实时提醒项目参与人员信息的更新 便于

Jenkins与钉钉机器人实现手机端获取当前服务日志

马上要过年了,各位运维们除了因为买不到回家的火车票而嚎嚎大哭之外也开始扩容服务器和提前调整监控值,目的就是为了过一个消停的春节.可是这毕竟十天左右不在公司,要是模块真出了什么意外肯定没法第一找到日志分析问题,毕竟这几天都在串门拜年和醉生梦死中度过,走到哪都要再背一个笔记本实在太不方便了. 那么这个时候,我就琢磨使用手机端来启动服务器里脚本,让这个脚本可以去获取当前的日志,然后再把结果返回到手机端.这样就不用到哪里都带那个一看就很扫兴的公司笔记本电脑了. 使用手机端启动服务器里脚本?我又不会开发a

钉钉自定义机器人配合SVN钩子事件进行消息的推送实践

目前很多公司还是使用SVN(TortoiseSVN)进行版本控制,使用简单,适合管理一般项目.协同办公软件目前钉钉比较成熟,阿里也一直在宣传推广,这两年公司也在使用,主要用于信息的沟通,其它的绩效.考勤.日志.审批等都是挂载的我们公司内部的系统,很方便,之后钉钉推出了钉钉机器人,一开始觉得没用,也就一直没关注,但是最近我看了钉钉自定义机器人,觉得这个可以好好利用起来,看到网上也有这方面的应用说明,看着很简单,但是按照流程操作起来各种坑,而且相关知识过于碎片化,今天我在这里进行一下简单的整合,梳理