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

news2024/12/23 5:31:11

接口自动化之 + 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
then
    echo "python3未安装,正在安装..."
    sudo apt-get update
    sudo apt-get install -y python3
fi
pip3 install python-jenkins

echo "=========> 发送测试报告..."
cd ${WORKSPACE}/message
python3 send_qiwei.py

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

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

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

相关文章

sqlite跨数据库复制表

1.方法1 要将 SQLite 数据库中的一个表复制到另一个数据库,您可以按照以下步骤操作: 备份原始表的SQL定义和数据: 使用 sqlite3 命令行工具或任何SQLite图形界面工具,您可以执行以下SQL命令来导出表的SQL定义和数据&#xff1a…

libVLC 视频抓图

Windows操作系统提供了多种便捷的截图方式,常见的有以下几种: 全屏截图:通过按下PrtSc键(Print Screen),可以截取整个屏幕的内容。截取的图像会保存在剪贴板中,可以通过CtrlV粘贴到图片编辑工具…

Machine Learning机器学习之K近邻算法(K-Nearest Neighbors,KNN)

目录 前言 背景介绍: 思想: 原理: KNN算法关键问题 一、构建KNN算法 总结: 博主介绍:✌专注于前后端、机器学习、人工智能应用领域开发的优质创作者、秉着互联网精神开源贡献精神,答疑解惑、坚持优质作品共…

探索MongoDB:发展历程、优势与应用场景

一、MongoDB简介 MongoDB 始于 2007 年,由 Dwight Merriman、Eliot Horowitz 和 Kevin Ryan –(DoubleClick 的主理团队)共同创立。 DoubleClick 是一家互联网广告公司(现隶属于 Google),公司团队开发并利…

前端埋点全解及埋点SDK实现方式

一、什么是埋点 所谓“埋点”,是数据采集领域(尤其是用户行为数据采集领域)的术语,指的是针对特定用户行为或事件进行捕获、处理和发送的相关技术及其实施过程。比如用户某个icon点击次数、观看某个视频的时长等等。 埋点…

python-pytorch获取FashionMNIST实际图片标签数据集

在查看pytorch官方文档的时候,在这里链接中https://pytorch.org/tutorials/beginner/basics/data_tutorial.html的Creating a Custom Dataset for your files章节,有提到要自定义数据集,需要用到实际的图片和标签。 在网上找了半天没找到&a…

Jenkins用户角色权限管理

Jenkins作为一款强大的自动化构建与持续集成工具,用户角色权限管理是其功能体系中不可或缺的一环。有效的权限管理能确保项目的安全稳定,避免敏感信息泄露。 1、安装插件:Role-based Authorization Strategy 系统管理 > 插件管理 > 可…

java入门学习Day01

本篇文章主要是学会如何使用IDEA,和运行第一个java文件。 java环境安装:Windows下Java环境配置教程_windows java环境配置-CSDN博客 IDEA安装:IDEA 2023.2.5 最新激活码,注册码(亲测好用) - 异常教程 以上两个链接…

Docker中常见的命令行

1 docker的全部命令 docker attach #连接到正在运行中的容器 docker build #使用 Dockerfile 创建镜像 docker builder #管理builds docker builder prune #清除build缓存 docker checkpoint #管理checkpoints docker checkpoint create #从正在运行的容器创建检…

数据结构与算法 单链表的基本运算

一、实验内容 编写一个程序实现,实现单链表的各种基本运算(假设单链表的元素类型为char),并以此为基础设计一个程序完成下列功能: 初始化单链表;采用尾插法依次插入元素a,b,c&…

小米HyperOS 澎湃os机型免答题 免社区等级 秒接bl锁操作步骤解析

小米机型解锁bl 绕过社区等级5才可以解锁的限制的教程_没有五级社区怎么解锁bl-CSDN博客 上次解析了小米有些出厂不是HyperOS系统的机型绕社区等级接bl锁的操作。目前有更新出厂为HyperOS系统的机型免社区登录等级限制 免答题解锁bl的操作。而且有网友在米14 平板6sp k70这些新…

SCI一区顶刊优化算法改进:基于强化学习的神经网络算法RLNNA,你绝对没见过,非常新颖!

声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~ 目录 神经网络优化算法NNA: 基于强化…

vue2项目设置浏览器标题title及图标logo

工作中肯定会遇到要修改网页的标题title及图标logo 一、固定设置标题方案 方法一:在vue.config.js文件,添加如下代码: chainWebpack: config > {// 配置网页标题config.plugin(html).tap((args) > {args[0].title 标题return args})…

LoadBalance 负载均衡服务调用

前身:Ribbon LB负载均衡(Load Balance)是什么 简单的说就是将用户的请求平摊的分配到多个服务上,从而达到系统的HA(高可用),常见的负载均衡有软件Nginx,LVS,硬件 F5等 spring-cloud-starter-loadbalancer组…

Bash and a Tough Math Puzzle 线段树维护区间gcd

还是一道很不错的题目&#xff0c;很容易想到用一棵线段树来维护区间gcd 注意用倍数来剪枝就好了&#xff0c;很是一到很好的题目的 #include<iostream> #include<vector> using namespace std; const int N 5e510; int n,q; struct Segment{int l,r;int d; }tr[…

AI智聊功能支持生成旅游攻略、作文、标题优化,方便视频剪辑

在快节奏的生活中&#xff0c;我们总是需要快速、准确地获取所需信息。无论是撰写旅游攻略、作文&#xff0c;还是准备演讲稿&#xff0c;AI智聊都能为您一键生成精彩文案&#xff0c;让您的创意无限发挥&#xff01; 媒体梦工厂的AI智聊功能&#xff0c;利用先进的自然语言处…

python Flask扩展:如何查找高效开发的第三方模块(库/插件)

如何找到扩展以及使用扩展的文档 一、背景二、如何寻找框架的扩展&#xff1f;三、找到想要的扩展四、找到使用扩展的文档五、项目中实战扩展 一、背景 刚入门python的flask的框架&#xff0c;跟着文档学习了一些以后&#xff0c;想着其实在项目开发中&#xff0c;经常会用到发…

神经网络:梯度下降法更新模型参数

作者&#xff1a;CSDN _养乐多_ 在神经网络领域&#xff0c;梯度下降是一种核心的优化算法&#xff0c;本文将介绍神经网络中梯度下降法更新参数的公式&#xff0c;并通过实例演示其在模型训练中的应用。通过本博客&#xff0c;读者将能够更好地理解深度学习中的优化算法和损…

Android-Handler详解_原理解析

为了方便阅读将文章分为使用篇和源码解析两篇&#xff0c;上一篇已经写了Handler是什么、有什么、怎们用&#xff0c;这一片从源码的角度分析完整流程&#xff0c;看看Handler消息机制到底是啥原理。才疏学浅&#xff0c;如有错误&#xff0c;欢迎指正&#xff0c;多谢。 完整…

XR虚拟直播间,引领创新风潮,打破直播局限!

随着互联网技术日新月异的发展&#xff0c;直播行业也迎来了蓬勃发展的春天。然而&#xff0c;大多数直播间在吸引观众眼球和延长用户观看时长方面&#xff0c;仍然面临着巨大的挑战。正是在这样的背景下&#xff0c;XR虚拟直播系统应运而生&#xff0c;以其多维度的直播场景、…