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

相关推荐
七夜zippoe2 小时前
CANN Runtime任务描述序列化与持久化源码深度解码
大数据·运维·服务器·cann
Fcy6484 小时前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满4 小时前
Linux怎么查看最新下载的文件
linux·运维·服务器
代码游侠4 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
Harvey9034 小时前
通过 Helm 部署 Nginx 应用的完整标准化步骤
linux·运维·nginx·k8s
珠海西格电力科技5 小时前
微电网能量平衡理论的实现条件在不同场景下有哪些差异?
运维·服务器·网络·人工智能·云计算·智慧城市
释怀不想释怀6 小时前
Linux环境变量
linux·运维·服务器
zzzsde6 小时前
【Linux】进程(4):进程优先级&&调度队列
linux·运维·服务器
聆风吟º7 小时前
CANN开源项目实战指南:使用oam-tools构建自动化故障诊断与运维可观测性体系
运维·开源·自动化·cann
NPE~8 小时前
自动化工具Drissonpage 保姆级教程(含xpath语法)
运维·后端·爬虫·自动化·网络爬虫·xpath·浏览器自动化