1.可以看看以下文件的内容,发送报告的内容就是取值以下的内容,服务器里面查看
进入以下文件看看,vi 进入prometheusData.txt 这个txt文件夹
cd /var/lib/jenkins/workspace/ApiTest/allure-report/export
注意:可以把allure-report的文件从服务器上面下载下来,放在你项目的下一级里面,这样有助于编写代码哦
2.下面开始编写python的代码,注意:这个代码支持企业微信和钉钉,只需要把里面的webhook 换掉就行
import os
import requests
# 导入jenkins文件的包
from jenkins import Jenkins
# jenkins的url地址(就是域名,本机就是ip+端口号)
jenkins_url = "http://192.168.2.112:8080/"
# 登录jenkins
server = Jenkins(jenkins_url, username="admin", password="123456")
# 选择你的jenkins项目名称的地址,这段代码加上jenkins的url就会进入你的ApiTest项目
job_name = "job/ApiTest"
# 发消息的地址
job_url = server.get_info(job_name)["url"]
# 获取最新的构建任务名称,用于拼接后续allure地址
job_last_number = server.get_info(job_name)["lastBuild"]["number"]
# 测试报告allure地址
report_url = job_url + str(job_last_number) + "/allure"
def push_message():
content = {}
file_path = os.path.dirname(os.getcwd()) + "/allure-report/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
}
}
requests.post(url=webhook, json=content, verify=False) 因为他是https的所以需要加verify=False让他不报警告
push_message()
3.开始设置钉钉或者企业微信,你先找到你要发送消息的群组
上面就是设置钉钉了,那么下面来看看设置企业微信的吧
好了,企业微信和钉钉的机器人就配置好了 webhook也拿到了
4.安装插件 Post Build task 进行生成报告后的shell执行
5.点击你的自动化脚本,在点击配置,把以下内容加进去
#!/bin/bash
cd ${WORKSPACE}/message
python3 send_dingdin.py
6.然后现在你的自动化任务执行之后就会把结果发在工作群了