接口自动化之 + Jenkins + Allure报告生成 + 企微消息通知推送

news/2025/2/14 3:57:35/

接口自动化之 + Jenkins + Allure报告生成 + 企微消息通知推送

在jenkins上部署好项目,构建成功后,希望可以把生成的报告,以及结果统计发送至企微。

效果图:
在这里插入图片描述
在这里插入图片描述

实现如下。

1、生成allure报告

a. 首先在Jenkins插件管理中,搜索并安装allure插件
在这里插入图片描述

b. 其次,在 全局工具管理中,新增设置,注意别名最好填本地allure的文件名

在这里插入图片描述

c. 在Jenkins自己job中,添加构建后操作中添加allure report,填好结果文件路径和生成的report的路径。jenkins上设置完成。

在这里插入图片描述
在这里插入图片描述


2、下面开始编写python的代码,注意:这个代码支持企业微信和钉钉,只需要把里面的webhook 换掉就行

import os
import time
import requests
from jenkins import Jenkins# jenkins的url地址(就是域名,本机就是ip+端口号)
jenkins_url = "http://192.168.***.***:****/"# 登录jenkins
server = Jenkins(jenkins_url, username="admin", password="123456")
# print(server.server)# 选择你的jenkins项目名称的地址,这段代码加上jenkins的url就会进入你的ApiTest项目
job_name = "job/API_Test_Driver"# 发消息的地址
# job_url = server.get_info(job_name)["url"]
# 使用server.server 获取jenkins + url
job_url = server.server + job_name# 获取最新的构建任务名称,用于拼接后续allure地址
job_last_number = server.get_info(job_name)["lastBuild"]["number"]# 测试报告allure地址
report_url = job_url + "/" + str(job_last_number) + "/allure"# 记录时间
job_time = time.strftime("%Y-%m-%d_%H-%M-%S")def push_message():content = {}# 服务器执行file_path = os.path.dirname(os.getcwd()) + "/outFiles/report/html/export/prometheusData.txt"# # 用于本地调试# file_path = os.path.dirname(os.getcwd()) + "/outFiles/report/html/export/prometheusData.txt"f = open(file_path, "r", encoding="utf-8")for line in f.readlines():launch_name = line.strip("\n").split()[0]num = line.strip("\n").split()[1]# 把分割出来的数据组装成键值对 update是一个方法用于组装字典的content.update({launch_name: num})f.close()passed_num = content["launch_status_passed"]  # 通过数量failed_num = content["launch_status_failed"]  # 失败数量broken_num = content["launch_status_broken"]  # 阻塞数量skipped_num = content["launch_status_skipped"]  # 跳过数量case_num = content["launch_retries_run"]  # 总数量"""钉钉消息发送,通过webhook发送消息"""webhook = "这里放的你的webhook地址,也就是你在企业微信或者钉钉里面添加机器人生成的那个链接"content = {"msgtype": "text","text": {"content": "【接口自动化脚本执行结果】: \n【运行总数】:" + case_num+ "\n【通过数量】: " + passed_num+ "\n【失败数量】: " + failed_num+ "\n【阻塞数量】: " + broken_num+ "\n【跳过数量】: " + skipped_num+ "\n【构建地址】: " + job_url+ "\n【报告地址】: " + report_url+ "\n【测试时间】: " + job_time}}requests.post(url=webhook, json=content, verify=False)# 因为他是https的所以需要加verify = False让他不报警告push_message()

在这里插入图片描述

3、开始设置钉钉或者企业微信,你先找到你要发送消息的群组(我这里用的企微,钉钉也一样)

在这里插入图片描述
在这里插入图片描述

编辑机器人:
在这里插入图片描述
在这里插入图片描述
好了,企业微信和钉钉的机器人就配置好了 webhook也拿到了

4、安装插件 Post Build task 进行生成报告后的shell执行

在这里插入图片描述

5、点击你的自动化脚本,在点击配置,把以下内容加进去

在这里插入图片描述

#!/bin/bash
echo "=========> 安装Jenkins插件..."
if ! command -v python3 &> /dev/null
thenecho "python3未安装,正在安装..."sudo apt-get updatesudo apt-get install -y python3
fi
pip3 install python-jenkinsecho "=========> 发送测试报告..."
cd ${WORKSPACE}/message
python3 send_qiwei.py

6、然后现在你的自动化任务执行之后就会把结果发在工作群了,Jenkins上也生成了allure测试报告,完美展示。


http://www.ppmy.cn/news/1404557.html

相关文章

LeetCode 热题 100 | 动态规划(一)

目录 1 70. 爬楼梯 1.1 基本思路 1.2 官方题解 2 118. 杨辉三角 3 198. 打家劫舍 菜鸟做题,语言是 C 1 70. 爬楼梯 核心思想:把总问题拆解为若干子问题。 总问题:上到 5 楼的方式有多少种子问题:上到 4 楼的方式有多…

CSS面试题---基础

1、css选择器及优先级 选择器优先级:内联样式>id选择器>类选择器、属性选择器、伪类选择器>标签选择器、微元素选择器 注意: !important优先级最高; 如果优先级相同,则最后出现的样式生效; 继承得到的样式优先…

网络钓鱼升级 Darcula如何窃取用户信息

近日,网络安全领域一种名为 “Darcula” 的网络钓鱼欺诈(PhaaS)悄然兴起。这种新型钓鱼方式不同于传统的手段,它巧妙地利用了谷歌信息和 iMessage 的富通信服务(RCS),成为了网络犯罪分子的新手段…

考研数学|《1800》+《660》精华搭配混合用(经验分享)

肯定不行,考研数学哪有这么容易的! 先说说这两本习题册,李永乐老师推出的新版660题,相较于18年前的版本,难度略有降低,更加适合初学者。因此,对于处于基础阶段的学习者来说,新版660…

Windows中Microsoft Edge兼容性问题修复方案

针对Microsoft Edge浏览器在Windows系统中出现的兼容性问题解决步骤和策略: 作者是更改了注册表解决的,问题不一,大家遇到兼容性问题先按照第7个情况进行设置,大部分人是这个情况! 清理缓存和Cookies 按快捷键:ctrlshi…

Qt + VS2017 创建一个简单的图片加载应用程序

简介: 本文介绍了如何使用Qt创建一个简单的图片加载应用程序。该应用程序可以打开图片文件并在界面上显示选定的图片,并保存用户上次选择的图片路径。 1. 创建项目: 首先,在VS中创建一个新的Qt Widgets应用程序项目,并…

Windows 11 专业版 23H2 Docker Desktop 下载 安装 配置 使用

博文目录 文章目录 Docker Desktop准备系统要求 (WSL 2 backend)在 Windows 上打开 WSL 2 功能先决条件开启 WSL 2 WSL下载安装启动配置使用镜像 Image卷积 Volumes容器 Containers 命令RedisMySQLPostGreSQL Docker Desktop Overview of Docker Desktop Docker Desktop 疑难解…

刷LeetCode:冒泡排序详解 【2/1000 第二题】含imagemagick动态效果图

👤作者介绍:10年大厂数据\经营分析经验,现任大厂数据部门负责人。 会一些的技术:数据分析、算法、SQL、大数据相关、python 作者专栏每日更新: LeetCode解锁1000题: 打怪升级之旅 LeetCode解锁1000题: 打怪升级之旅htt…