python钉钉机器人自动回复_自动化执行 - 钉钉机器人通知

背景

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

实际代码如下:

importrequestsimporttimeimportjsonimportsysimporthashlibimportxml.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'

classMessage():def __init__(self):

self.total=0;

self.passed=0;

self.failed=0;

self.skipped=0;

self.reportUrl="";#解析文件获取结果数据

defanalyze(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']#发送报告

defsend_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. 多接触/尝试新的东西没错;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值