第一步:项目结构整理
为了保持项目整洁,建议按照以下目录归档文件:
- 在项目根目录下新建一个文件夹,命名为
scripts。 - 将通知用的 Python 脚本(如
ding_notify.py或feishu_notify.py)放入该文件夹。 - 根目录保留
Jenkinsfile和requirements.txt(如果有)。
第二步:配置群机器人 (获取 Webhook)
选项 A:钉钉 (DingTalk)
- 进入钉钉群,点击右上角 群设置 -> 智能群助手。
- 点击 添加机器人 -> 选择 自定义 (通过Webhook接入)。
- 安全设置 (必选):推荐选择 “自定义关键词”,填入 “构建通知” (或你脚本中定义的其他词)。
- 完成添加,复制并保存 Webhook 地址 (重点是
access_token部分)。
选项 B:飞书 (Feishu/Lark)
- 进入飞书群,点击右上角 设置 -> 群机器人。
- 点击 添加机器人 -> 选择 自定义机器人。
- 安全设置 (必选):推荐选择 “关键词”,填入 “构建通知”。
- 完成添加,复制并保存 Webhook 地址。
第三步:脚本功能准备 (Python 逻辑)
你需要准备的脚本应具备以下逻辑(无需贴代码,确认功能即可):
- 依赖库:使用
requests库发送 HTTP 请求。 - 获取 Token:优先从系统环境变量读取 Webhook 地址或 Token,也可以在脚本中设置默认值。
- 状态判断:接收命令行传入的
SUCCESS或FAILURE状态。- 成功:消息标头显示绿色,文案提示“构建成功”。
- 失败:消息标头显示红色,文案提示“构建失败”。
- 消息组装:包含项目名称、构建耗时、结束时间,以及跳转链接(Console 日志或测试报告)。
- 发送请求:将组装好的 JSON 数据 POST 给机器人的 Webhook 地址。
第四步:Jenkins 流水线集成 (Jenkinsfile 逻辑)
在 Jenkinsfile 中配置以下流程:
- Stage: 环境准备与测试
- 检查环境:判断
venv文件夹是否存在。 - 创建环境:如果不存在,执行命令自动创建虚拟环境。
- 激活环境:执行
source venv/bin/activate。 - 安装依赖:安装
requests(发通知用) 和selenium/pytest(测试用)。 - 执行测试:运行自动化测试命令并生成报告数据。
- 检查环境:判断
- Post: 构建后操作 (通知核心)
- 配置
success(成功块) 和failure(失败块)。 - 再次激活环境:在发送通知前,必须再次执行
source venv/bin/activate。 - 执行脚本:调用 Python 脚本,并传入 Jenkins 的环境变量(任务名、构建URL、耗时等)。
- 配置