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