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

相关推荐
向阳12186 分钟前
Dubbo负载均衡
java·运维·负载均衡·dubbo
荒Huang43 分钟前
Linux挖矿病毒(kswapd0进程使cpu爆满)
linux·运维·服务器
海阔天空_20131 小时前
Python pyautogui库:自动化操作的强大工具
运维·开发语言·python·青少年编程·自动化
桥田智能1 小时前
气爪在自动化装配线中是如何应用的?
运维·自动化
Lovely_red_scarf2 小时前
Jenkins系列
jenkins
€☞扫地僧☜€3 小时前
docker 拉取MySQL8.0镜像以及安装
运维·数据库·docker·容器
其乐无涯3 小时前
服务器技术(一)--Linux基础入门
linux·运维·服务器
Diamond技术流3 小时前
从0开始学习Linux——网络配置
linux·运维·网络·学习·安全·centos
写bug的小屁孩3 小时前
前后端交互接口(三)
运维·服务器·数据库·windows·用户界面·qt6.3
斑布斑布3 小时前
【linux学习2】linux基本命令行操作总结
linux·运维·服务器·学习