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

接口自动化之 + 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测试报告,完美展示。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【QT】:基本框架

基本框架 一.创建程序二.初识函数1.main2.Widget.h3.Wight.cpp4.Wight.ui5.文件名.pro 三.生成的中间文件 本系列的Qt均使用Qt Creator进行程序编写。 一.创建程序 二.初识函数 1.main 2.Widget.h 3.Wight.cpp 4.Wight.ui 此时再点击编辑,就看到了ui文件的本体了。…

国内IP切换软件:解锁网络世界的新钥匙

在数字化快速发展的今天,互联网已成为我们生活中不可或缺的一部分。然而,伴随着网络使用的深入,许多用户逐渐意识到,不同的IP地址可能会带来截然不同的网络体验。为了应对这一问题,国内IP切换软件应运而生,…

Python(django)之单一接口展示功能前端开发

1、代码 建立apis_manage.html 代码如下&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><title>测试平台</title> </head> <body role"document"> <nav c…

Django Cookie和Session

Django Cookie和Session 【一】介绍 【1】起因 HTTP协议四大特性 基于请求响应模式&#xff1a;客户端发送请求&#xff0c;服务端返回响应基于TCP/IP之上&#xff1a;作用于应用层之上的协议无状态&#xff1a;HTTP协议本身不保存客户端信息短链接&#xff1a;1.0默认使用短…

重塑未来:Web3如何改变我们的数字生活

引言 随着科技的飞速发展&#xff0c;Web3已经成为数字时代的新潮流&#xff0c;其革命性的变革正在渐渐改变着我们的数字生活。本文将深入探讨Web3如何改变我们的数字生活&#xff0c;涉及其意义、应用场景、对未来的影响&#xff0c;以及我们如何适应这一变革&#xff0c;为…

Vue 二次封装组件的艺术与实践

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

[flask]执行上下文的四个全局变量

flask上下文全局变量&#xff0c;程序上下文、请求上下文、上下文钩子 -- - 夏晓旭 - 博客园 (cnblogs.com) 执行上下文 执行上下文&#xff1a;即语境&#xff0c;语意&#xff0c;在程序中可以理解为在代码执行到某一行时&#xff0c;根据之前代码所做的操作以及下文即将要…

macos下 jupyter服务安装和vscode链接密码设置 .ipynb文件

最近收到了一些后缀为.ipynb的文件&#xff0c; 这个文件就是使用jupyter编辑的&#xff0c;于是就需要安装一个jupyter服务&#xff0c; 对于最新版本的jupyter 网上很多的资料都已经过期了&#xff0c;这里以最新版本的jupyter为例。 jupyter lab安装 jupyter 这个工具包含…

基于遗传算法的智能天线最佳阵列因子计算matlab仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于遗传算法的智能天线最佳阵列因子计算。智能天线技术利用自适应阵列处理技术改善无线通信系统的性能&#xff0c;尤其是提高接收信号质量、抑制干扰和增强定位能力。在智能…

集合系列(十六) -集合知识回顾整理

一、摘要 在 Java 中&#xff0c;集合大致可以分为两大体系&#xff0c;一个是 Collection&#xff0c;另一个是 Map&#xff0c;都位于java.util包下。 Collection &#xff1a;主要由 List、Set、Queue 接口组成&#xff0c;List 代表有序、重复的集合&#xff1b;其中 Set…

C语言:文件操作详解

什么是文件 文件是是计算机硬盘存储的数据的集合&#xff0c;它可以是文本文档&#xff0c;也可以是图片&#xff0c;程序等等。将数据存储进文件内可以很好的保存数据&#xff0c;方便程序员对文件的操作。 文件的类型 一般根据存储数据类型的不同可以分为二进制文件和文本文…

python的神奇bug2

今天测试出一个很诡异的bug&#xff0c; 这个错误还真的很难发现 测试1 a [1,10,100] for i in a:print(i)if(i10):a[20,30,-1]一般来说我们在进行迭代时&#xff0c;a这个值时不能改动的&#xff0c;但是现在的问题时如果我不小心给改动了呢&#xff0c;结果如下 也就是说…

通过Jmeter准备压测数据-mysql示例

1、新建线程组 总共30万条数据 2、创建jdbc链接 创建jdbc连接配置 配置mysql连接 需要在jmeter安装的路径\apache-jmeter-5.6.3\lib\ext 目录下添加mysql 驱动 3、创建jdbc请求 jdbc链接名称需要与上一步中的保持一致&#xff0c;同时添加insert语句 例如 INSERT INTO test…

让手机平板成为AI开发利器:AidLux

想ssh登录自己的手机吗&#xff1f; 想在手机上自由的安装lynx、python、vscode、jupyter甚至飞桨PaddlePaddle、Tensorflow、Pytorch和昇思Mindspore吗&#xff1f; 那么看这里....装上AidLux&#xff0c;以上全都有&#xff01; AidLux是一个综合的AI开发平台&#xff0c;…

nvm安装以后,node -v npm 等命令提示不是内部或外部命令

因为有vue2和vue3项目多种&#xff0c;所以为了适应各类版本node,使用nvm管理多种node版本&#xff0c;但是当我按教程安装nvm以后&#xff0c;nvm安装以后&#xff0c;node -v npm 等命令提示不是内部或外部命令 首先nvm官网网址&#xff1a;https://github.com/coreybutler/…

java调用jacob进行文件转换ppt转pdf或者png

java调用jacob进行文件转换ppt转pdf或者png 前情提要 最近项目上&#xff0c;遇到一个复杂的ppt&#xff0c;最终要求是要将ppt每一页转成图片原本这个是不难&#xff0c;网上一搜一大堆案例&#xff0c;外加我本身也比较精通aspose&#xff0c;那还不是分分钟搞定。结果就是…

实测梳理一下kafka分区分组的作用

清空topickafka-topics.sh --bootstrap-server localhost:9092 --delete --topic second创建分区kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 3 --topic second发kafka-console-producer.sh --bootstrap-server localhos…

Node.js【入门级】

node 可以脱离浏览器来执行js代码,没有DOM和BOM对象,针对后端可以编写接口&#xff0c;提供网页资源&#xff0c;前端可以集成各种工具&#xff08;承上启下&#xff09;Buffer Buffer相关操作 let buf Buffer.alloc(10) console.log(buf); let buf_2 Buffer.allocUnsafe(10…

【GitLab】Ubuntu 22.04 快速安装 GitLab

在 Ubuntu 22.04 上安装最新版本的 GitLab&#xff0c;可以按照以下步骤操作&#xff1a; 1. 更新系统&#xff1a; 在终端中执行以下命令以确保系统是最新的&#xff1a; sudo apt update sudo apt upgrade2. 安装依赖&#xff1a; 安装 GitLab 所需的依赖包&#xff1a; …

Hack.Summit() 2024再添亮点:Morphism CEO Cecilia Hsueh确认出席

随着Web3技术的风起云涌&#xff0c;区块链行业正在全球范围内以前所未有的速度崭露头角。而在这场变革的浪潮中&#xff0c;备受瞩目的区块链盛会——Hack.Summit() 2024区块链开发者大会&#xff0c;将于2024年4月9日至10日&#xff0c;在香港数码港拉开帷幕。这不仅标志着Ha…