• 欢迎光临~

Python+Linux+Tomcat实现钉钉群机器人推送消息及在线访问

开发技术 开发技术 2022-11-18 次浏览

一、目标

目标:自动化测试报告,通过钉钉机器人实现自动消息推送,并点击消息推送链接查看报告

二、准备工作

1、Linux服务器上已部署Tomcat,生成报告文件report.html(本文基于报告已生成得情况下,此处不赘述),测试文件如:

2022-11-17_18_34_55_result.html

2、将报告文件上传至服务器Tomcat目录下指定位置:/tomcat/webapps/testreport/(专门建了testreport项目用于存放报告文件)

说明:python库用paramiko库,进行服务器连接,并通过sftp进行文件上传(上传sftp.put(local_path,remote_path),下载用 sftp.get()),具体文件路径根据实际项目调整。

注意:本地和远程均需是带文件名的完整路径。

import paramiko


#创建SSHClient实例对象
ssh = paramiko.SSHClient()
#调用方法,表示没有存储远程机器的公钥,允许访问
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy)
#远程连接机器,地址,端口,用户名,密码
ssh.connect(服务器IP, 22, 'root', 密码)

# 创建传输
sftp = ssh.open_sftp()
# 文件本地路径
local_path = './report/{}'.format('2022-11-17_18_34_55_result.html')
# 上传服务器得
remote_path = remote_path = '/opt/tomcat/tomcat/webapps/testreport/{}'.format('2022-11-17_18_34_55_result.html')
# 执行上传
sftp.put(local_path, remote_path)
sftp.close()

#最后关闭连接
ssh.close()

上传成功:

Python+Linux+Tomcat实现钉钉群机器人推送消息及在线访问

 

 

 浏览器访问tomcat服务地址:

Python+Linux+Tomcat实现钉钉群机器人推送消息及在线访问

 

3、创建钉钉机器人并通过python脚本对接钉钉消息推送接口

 ① 查看钉钉官方开发文档,自定义机器人接入部分:https://open.dingtalk.com/document/group/custom-robot-access

 ② 按照文档要求,创建钉钉群聊机器人,并在最后复制出机器人的Webhook地址,格式如:https://oapi.dingtalk.com/robot/send?access_token=XXXXXX

 ③ 通过python编写脚本请求消息发送,用到requests库的POST请求,注:官方提供了多种不同的模板,此处采用的是LINK格式的模板

import requests


ding_url=此处为复制出来的webhook
header = {
    'Content-Type': 'application/json'
}
# 文本消息
# data = {
#     "msgtype": "text",
#     "text": {"content": "测试报告,我就是我, 是不一样的烟火"}
# }

# 链接消息,messgaeUrl为测试报告在服务器的访问地址
data = {
    "msgtype": "link",
    "link": {
        "text": "测试报告",
        "title": "测试已完成!",
        "picUrl": "",
        "messageUrl": "http://服务器IP/testreport/2022-11-17_18_25_47_result.html"
    }
}
r = requests.post(ding_url, headers=header, json=data)
print(r.json())

④ 执行脚本,调用接口,效果如下,且点击可跳转链接打开服务器上的报告:

Python+Linux+Tomcat实现钉钉群机器人推送消息及在线访问

 

 

参考文件:

钉钉开放平台·自定义机器人接入:https://open.dingtalk.com/document/group/custom-robot-access

喜欢 (0)
违法和不良信息举报电话:022-22558618 举报邮箱:dljd@tidljd.com