批量跑脚本后自定义消息内容发送至钉钉--自定义发送到钉钉的消息内容

news/2025/10/23 14:09:06/文章来源:https://www.cnblogs.com/hequanbao/p/19160429

import requests
import json
import os
import time
import sys


def send_dingtalk_message(webhook_url, success_count, fail_count, fail_module, job_name, build_number, build_user, build_url):
"""
发送Markdown格式的钉钉通知消息,支持更丰富的排版样式
"""
# 获取当前时间
end_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
# 计算总脚本数和成功率
total_scripts = success_count + fail_count
success_rate = f"{(success_count / total_scripts * 100):.1f}%" if total_scripts > 0 else "0%"

# 根据结果设置状态标识和颜色
if fail_count == 0:
status_text = "构建成功"
status_color = "green" # 绿色表示成功
status_emoji = "✅"
else:
status_text = "构建失败"
status_color = "red" # 红色表示失败
status_emoji = "❌"

# 构造Markdown内容(支持标题、加粗、颜色、列表等格式)
markdown_content = f"""
test

### {status_emoji} Jenkins构建通知 [{job_name}]

> **状态**:<font color="{status_color}">{status_text}</font>
> **构建编号**:#{build_number}

| 信息类型 | 详情 |
|----------------|--------------------------|
| 📌 项目名称 | {job_name} |
| 👤 构建人员 | {build_user} |
| ⏰ 结束时间 | {end_time} |
| 🖥 构建环境 | 老版本-预发布环境 |
| 🔗 报告链接 | [查看详细日志]({build_url})|

#### 构建结果统计
- 📈 总脚本数:{total_scripts} 个
- ✅ 成功脚本:{success_count} 个
- ❌ 失败脚本:{fail_count} 个
- ❌ 失败脚本:{fail_module}
- 📊 成功率:<font color="blue">{success_rate}</font>
""".strip() # 去除首尾空行

# 构造Markdown类型消息
message = {
"msgtype": "markdown",
"markdown": {
"title": f"Jenkins构建通知 - {job_name} #{build_number}", # 消息标题(通知栏显示)
"text": markdown_content
},
"at": {
"isAtAll": False # 不@所有人,如需@特定人可添加"atMobiles": ["手机号"]
}
}

headers = {"Content-Type": "application/json"}
# VPN代理
proxies = {"https": None}

try:
response = requests.post(
webhook_url,
headers=headers,
data=json.dumps(message),
proxies=proxies,
timeout=10
)
'''response.raise_for_status() 是一个 “主动报错” 的方法,用于显式检查 HTTP 请求是否成功,
避免错误的响应被静默处理。在需要确保请求成功的场景(如接口调用、数据爬取)中非常实用'''
response.raise_for_status()

result = response.json()
if result.get("errcode") == 0:
print("钉钉通知发送成功")
else:
print(f"钉钉通知发送失败: {result.get('errmsg')}")
return result

except requests.exceptions.RequestException as e:
print(f"请求异常: {e}")
return None


if __name__ == "__main__":
# 从环境变量获取构建信息
job_name = os.getenv("JOB_NAME", "未知项目")
build_number = os.getenv("BUILD_NUMBER", "0")
build_user = os.getenv("BUILD_USER", "debug")
# build_url = os.getenv("BUILD_URL", "#)
build_url = f'http://192.168.3.165:8080/jenkins/job/ceshi//{build_number}/console'

# jenkins-test钉钉内部群通知-0001
webhook_url = "https://oapi.dingtalk.com/robot/send?access_token=9ac34e44f528d56d6cbd7d4a50ac6a25e8264750bd7401a3543a43c816c1816f"

# 初始化计数
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from case.game_scrip import success_count, fail_count, fail_files
success_count = success_count
fail_count = fail_count
fail_module = fail_files

send_dingtalk_message(webhook_url, success_count, fail_count, fail_module, job_name, build_number, build_user, build_url)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/944237.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年10月国内四氟电加热器生产厂家全景解析报告,基于专业测评的技术、性能及市场优势深度分析

在工业加热设备领域,四氟电加热器因耐腐蚀、防粘附、高温稳定性等特性,已成为化工、医药、食品等高标准行业的首选设备。据《2025中国工业加热设备技术白皮书》统计,四氟电加热器国内市场年增长率达12.8%,其中具备…

Python编程:类型转换与输入输出

Python编程:类型转换与输入输出在Python编程中,类型转换和输入输出是基础且重要的概念。下面我将详细介绍这些内容,并提供一个综合示例。 输入输出基础 输入函数:input() input() 函数用于从用户获取输入,返回的是…

088_尚硅谷_switch使用细节(2)

088_尚硅谷_switch使用细节(2)1.switch 后也可以不带表达式, 类似多个if--else分支使用_案例演示1 2.switch 后也可以不带表达式, 类似多个if--else分支使用_案例演示2 3.switch 后也可以直接声明或定义一个变量,分号…

微软修复CVSS 10.0分高危Entra ID漏洞CVE-2025-55241 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

iText Core生成pdf的一个简单示例

使用pdfwriter创建writer对象,使用document创建文档:// 创建新的PDF文档PdfWriter writer = new PdfWriter("order_report.pdf");PdfDocument pdfDoc = new PdfDocument(writer);Document document = new …

在IntelliJ IDEA中采用Git

在IntelliJ IDEA中采用Gitpre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &…

国产化Excel开发组件Spire.XLS教程:在Python中将Pandas DataFrame导出到Excel的详细教程

在 Python 开发中,处理表格数据是非常常见的任务,而 Pandas 是最常用的数据处理和分析库。开发者经常需要将 Pandas DataFrame 导出到 Excel,以便进行报告、团队协作或进一步的数据分析。本教程介绍如何在Python中使…

2025 年化工塑料桶生产厂家最新推荐榜:聚焦企业专利技术、品质管控及知名客户合作案例的权威解析

在化工、食品、医药等工业领域,塑料包装容器的质量直接关系到物料储存安全与运输效率。根据2025年最新行业调研数据,化工塑料桶市场规模已达187亿元,年均增长率5.8%。本文基于对企业产能规模、工艺专利数量、质检合…

主流CI/CD工具选型指南:助力企业实现高效交付

DevOps工具选型指南:Gitee CI/CD如何助力企业实现高效交付 在数字化转型浪潮中,DevOps已成为企业提升软件交付效率的核心方法论。作为DevOps实践的关键环节,持续集成与持续交付(CI/CD)工具的选择直接影响着企业的…

通过openwrt唤醒pc电脑

参考 https://todesk.com/helpcenter/questions-86.html 重点 网卡设置 在网卡的电源设置中,最好不要勾选准许计算机关闭此设备以节约电源 ARP绑定 局域网唤醒如果是局域网唤醒pc,完全不需要ARP绑定 比如通过openwrt…

图表控件Aspose.Diagram教程:在C#中将VSD转换为PDF

Microsoft Visio 使用VSD文件来保存专业图表、流程图和业务流程模型。但是,如果收件人未安装 Microsoft Visio,则共享 VSD 格式的 Visio 图表可能会效率低下。一种通用且便携的共享图表的方法,同时保持格式和布局不…

Gitee:中国开发者生态的数字化转型引擎

Gitee:中国开发者生态的数字化转型引擎 在中国数字经济高速发展的背景下,本土化代码托管平台正成为企业数字化转型的关键基础设施。Gitee作为国内领先的一站式DevOps平台,凭借其深度本地化服务、全流程开发工具链和…

Windows 11 24H2 堆栈防护:从功能解析到实战配置

在现代11 24H2版本中,"内核模式硬件强制堆栈保护"作为一项关键安全特性,为系统内核筑起了一道硬件级防线。本文将系统讲解该功能的防护场景、技术细节及配置方法,助你快速掌握这一安全工具。 一、防护场景…

2025年陕西省基本农田调整技术服务品牌排名前十权威解析

摘要 随着国家土地管理政策的不断完善,基本农田调整技术服务行业在2024年迎来快速发展,陕西省作为农业大省,相关服务需求持续增长。本文基于市场调研和用户反馈,整理出2025年陕西省基本农田调整技术服务品牌排名前…

2025年陕西省基本农田调整技术服务公司排名前十权威解析

摘要 随着国家土地管理政策的不断完善,基本农田调整技术服务行业在2024年迎来快速发展,尤其在陕西省,市场需求持续增长。本文基于行业数据分析和用户反馈,为您呈现2025年陕西省基本农田调整技术服务公司排名前十的…

2025.10.23 VP Record

Public NOIP Round #8 (Div. 1, 提高)从这场开始正式进入高中的 OI 训练了,回家记得写一篇 Rules 用于训练和比赛。 QOJ 7717 T1,感觉 *2000 左右,很有启发性一个题。首先暴力模拟显然是假的,这个 bitset 也就是个…

2025年英国留学服务商排行榜:Top 10权威推荐与选择指南

摘要 随着全球教育国际化趋势加速,英国留学行业在2025年持续增长,市场规模预计突破百亿英镑,年复合增长率达8%。学生和家长对可靠、专业的留学服务需求激增,本文基于行业数据、用户口碑和服务质量,为您呈现英国留…

阿里巴巴DevOps实践指南

下载地址https://8ma.co/res/VXBZ9990 ◀.zstitle { width: 280px; text-align: center; font-size: 26px } .zsimgweixin { width: 280px } .zsimgali { width: 280px; padding: 0px 0px 50px 0px } .zsleft { float…

2025年轴流风机品牌排名前十:如何选择靠谱供应商及行业洞察

摘要 随着工业4.0和智能制造的推进,轴流风机市场在2025年预计将持续增长,需求主要来自数据中心、机场、工业厂区等场景。行业发展趋势向高效节能、智能化控制方向演进。本文基于市场调研和用户口碑,为您呈现轴流风机…

2025年轴流风机品牌全面评测与排名前十推荐

摘要 轴流风机作为工业通风和空调系统的核心组件,近年来随着智能制造和绿色能源的发展,行业需求持续增长。2025年,轴流风机市场预计将达到XX亿元规模,同比增长XX%,主要驱动因素包括数据中心扩建、工业4.0升级以及…