jenkins中的allure和email问题梳理

news2024/12/25 18:42:41

一、allure相关

1、我安装了jenkins之后需要再安装allure吗?在jenkins插件中心直接安装allure

1.Allure Jenkins Plugin 只是一个集成插件,它要求你在 Jenkins 服务器上安装 Allure 命令行工具(Allure Commandline)来实际生成报告。
Dashboard>Manage Jenkins>Plugins>Available plugins安装allure-jenkins-plugin之后重启jenkins。
然后进入Dashboard>Manage Jenkins>Tools 勾选自动安装来安装allure,名字自己取一个
在这里插入图片描述

2 allure路径问题

在一个`freestyle`里的项目中的`Configure`,allure报告位置是通过什么决定的呢?

Build Steps>Execute shell执行

cd /python_project/everyday_check/
/usr/local/python3.9/bin/pytest -sv -m pro testcase_everyday_check/web_site_everyday_check.py 

由于上面代码没有alluredir相关信息,这里将会去pytest.init找用例执行的结果
pytest.ini

# pytest.ini
addopts = -sv --alluredir ./report/temp_jsonreport --clean-alluredir

pytest.init中用例结果alluredir和下图填的用例结果路径(allure-result)不一致会产生空的报告
在这里插入图片描述

那么需要将用例结果复制过来解决空报告问题

mkdir -p ${WORKSPACE}/allure-results_${BUILD_NUMBER} 
# 这与pytest.ini文件定义的addopts = -sv --alluredir ./report/temp_jsonreport --clean-alluredir有关这是allure的目录我将其复制过来
cp -r /python_project/everyday_check/report/temp_jsonreport ${WORKSPACE}/allure-results_${BUILD_NUMBER}

3 报告归档问题

生成报告时都是采用-c -o /var/lib/jenkins/workspace/everyday_check/allure-report那么为何每个构建的报告不一样呢?都是该次构建的报告
下图可见每次的报告路径均是allure-report
在这里插入图片描述
这是因为每次构建生成的报告jenkins都会进行归档,如
/var/lib/jenkins/jobs/everyday_check/builds/1/archive中的1就是第一次构建生成的报告
在这里插入图片描述

二、Extended E-mail Notification

1 在Dashboard>Manage Jenkins>Plugins>Available plugins安装Email Extension Plugin之后重启jenkins。
然后进入Dashboard>Manage Jenkins>system 中的 Extended E-mail Notification进行配置
如下所示 其余可以全部使用默认值
在这里插入图片描述

注意上图3需要需要邮箱地址和授权码,相当于邮箱的发送服务器。注意password中需要输入邮箱的授权码而不是密码
在这里插入图片描述

在Default Content中可以使用下列模板

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
       .logo {
            float: left;
            min-width: 40px;
            height: 40px;
        }
        .title{
            text-align: center;
            color: rgb(235, 30, 15);
        }
        .desc{
            text-align: left;
        }
    </style>
</head>
<body>
    <div>
        <h1 class="title">每日巡检自动化测试报告</h1>
    </div>
    <div class="desc">
        <p><font color="red">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Jenkins自动发送的测试报告邮件,无需回复!</font></p>
        <h4>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;各位同事,大家好,以下为${PROJECT_NAME}自动化测试构建信息</br><h4/>
        <h4>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在线测试报告直达链接:<a href="${PROJECT_URL}/${BUILD_NUMBER}/allure">${PROJECT_URL}/${BUILD_NUMBER}/allure</a></h4>
    </div>
    <br/>
    <div>
        <table width="900" cellpadding="8px" cellspacing="8px" class="table"> 
            <tbody>
                <tr>
                    <td><br/>
                    <b><font color="#0B610B">项目描述:${JOB_DESCRIPTION}<br></font></b>
                    <hr size="2" width="100%" align="center" /></td>
                </tr>
                <tr>
                    <td>项目名称 : ${PROJECT_NAME}</td>
                </tr>
                <tr>
                    <td>构建编号 : 第${BUILD_NUMBER}次构建</td>
                </tr>
                <tr>
                    <td>触发原因: ${CAUSE}</td>
                </tr>
                <tr>
                    <td>构建状态: ${BUILD_STATUS}</td>
                </tr>
                <tr>
                    <td>构建日志: <a href="${PROJECT_URL}${BUILD_NUMBER}/console">${PROJECT_URL}${BUILD_NUMBER}/console</a></td>
                </tr>
                <tr>
                    <td>构建Url : <a href="${BUILD_URL}">${BUILD_URL}</a></td>
                </tr>
                <tr>
                    <td>工作目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></td>
                </tr>
                <tr>
                    <td>项目Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></td>
                </tr>
                <tr>
                    <td>allure在线测试报告:<a href="${PROJECT_URL}/${BUILD_NUMBER}/allure">${PROJECT_URL}/${BUILD_NUMBER}/allure</a></td>
                </tr>
            </tbody>
        </table>
 
    </div>
    
 
</body>

2 邮件老是发送失败时可以将Jenkins LocationSystem Admin e-mail address填一下,实测有用

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

真的有被Transformer多头注意力惊艳到…

在这篇文章中&#xff0c;我们将深入探讨 Transformer 的核心部分-多头注意力&#xff08;Multi-head Attention&#xff09;。 这个机制能让 Transformer 同时从多个角度理解数据&#xff0c;提高处理信息的能力和效率。 01、Transformer 中如何使用注意力机制 Transformer…

[数据结构]带头双向循环链表的实现与应用

文章目录 一、引言二、链表的基本概念1、链表是什么2、链表与顺序表的区别3、带头双向循环链表 三、带头双向循环链表的实现1、结构体定义2、初始化3、销毁4、显示5、增删查改 四、分析带头双向循环链表1、存储方式2、优点3、缺点 五、总结1、练习题2、源代码 一、引言 链表作…

修复PDF打印速度慢

详细问题&#xff1a; 当您尝试将 PDF 文件打印到本地或网络打印机时&#xff0c;打印需要很长时间&#xff0c;因为发送打印作业后&#xff0c;打印机开始打印的速度非常慢&#xff0c;在打印任务中可以看到打印传输的数据在缓慢增长。 从其他程序打印时也不会出现打印速度慢…

c++的web框架Restbed介绍及在嵌入式Linux下的移植详解

随着物联网和嵌入式设备的普及&#xff0c;开发高性能的网络服务变得愈发重要。Restbed是一个用于构建RESTful APIs的轻量级C框架&#xff0c;因其简洁而强大的特性&#xff0c;成为开发者的热门选择。本文将介绍Restbed框架及其在嵌入式Linux平台上的移植方法。 一、Restbed框…

东方博宜 1176. 素数问题

东方博宜 1176. 素数问题 #include<iostream> using namespace std; int main() { int n ;while(cin >> n && n!0) {int count_n ;count_n 0 ;int k ;for( k 1 ; k < n ; k){int count_k ;count_k 0 ;int j ;for( j 2 ; j < k ; j){if (k % j …

基于SSM的大学生勤工助学管理系统(含源码+sql+视频导入教程+文档+PPT)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于SSM的大学生勤工助学管理系统1拥有三种角色&#xff1a;管理员、学生和用工部门&#xff0c;具体功能如下 1.1 背景描述 基于SSM框架&#xff08;SpringSpring MVCMyBatis&#xff09…

Java微信支付接入(1) - API V3 引入支付参数

1.定义微信支付相关参数 wxpay.properties 文件 这个文件定义了之前我们准备的微信支付相关的参数&#xff0c;例如商户号、APPID、API秘钥等等 # 微信支付相关参数 # 商户号 wxpay.mch-id1558950191 # 商户API证书序列号 wxpay.mch-serial-no34345964330B66427E0D3D28826C49…

HTB:Base[WriteUP]

目录 连接至HTB服务器并启动靶机 1.Which two TCP ports are open on the remote host? 2.What is the relative path on the webserver for the login page? 3.How many files are present in the /login directory? 4.What is the file extension of a swap file? …

DeepACO:用于组合优化的神经增强蚂蚁系统解决TSP问题的代码阅读

总体概括 DeepACO与普通ACO不同的是将问题输入实例输入到一个训练的网络中&#xff0c;将网络训练成为一个类似于专家知识的模块&#xff0c;可以生成相应的启发式矩阵网络&#xff0c;从而省去相应的专家知识。 其中在训练网络的代码中&#xff1a; 是进行监督式训练通过trai…

虚幻引擎GAS入门学习笔记(一)

虚幻引擎GAS入门(一) Gameplay Ability System&#xff08;GAS&#xff09; 是一个模块化且强大的框架&#xff0c;用于管理虚幻引擎中的游戏玩法逻辑。它的核心组成部分包括 Gameplay Ability&#xff08;定义和执行能力&#xff09;、Gameplay Effect&#xff08;应用和管理…

数字安全新时代:聚焦关键信息基础设施安全保障——The Open Group 2024生态系统架构·可持续发展年度大会盛大来袭

在全球数字化转型的浪潮中&#xff0c;关键信息基础设施&#xff08;Critical Information Infrastructure&#xff0c;简称CII&#xff09;的安全保障已成为各国政府和企业共同关注的焦点。随着技术的飞速发展和网络威胁的日益复杂&#xff0c;如何构建高效、灵活且安全的数字…

“Flash闪存”基础 及 “SD NAND Flash”产品的测试介绍

目录 一、“FLASH闪存”是什么&#xff1f; 1. 简介 2. 分类 3. 特点 4. 虚拟化 二、SD NAND Flash 1. 概述 2. 特点 3. 引脚分配 4. 数据传输模式 5. SD NAND寄存器 6. 通电图 7. 参考设计 三、STM32测试例程 1. 初始化 2. 单数据块测试 3. 多数据块测试 4.…

SSD | (一)SSD综述

文章目录 &#x1f4da;SSD综述&#x1f407;SSD基本结构&#x1f407;SSD与HDD&#x1f407;SSD基本工作原理⭐SSD请求处理流程⭐SSD主要组成模块⭐SSD读写操作 &#x1f407;SSD产品核心指标⭐基本信息⭐性能指标⭐数据可靠性和寿命⭐功耗 &#x1f4da;可计算存储 &#x1f…

VueRouter前端路由

文章目录 VueRouter前端路由VueRouter 简介安装vuerouter配置router文件子路由路由重定向 VueRouter前端路由 VueRouter 简介 安装vuerouter npm install vue-router4yarn add vue-router4配置router文件 import { createRouter, createWebHistory } from vue-router; impor…

k8s--二进制包部署及常见报错解决方法

部署流程 所有基础流程见此教程&#xff0c;很详细&#xff1a; 从零搭建k8s集群 - 许大仙 - 博客园 (cnblogs.com) 记得在写配置文件时细心点&#xff0c;注意修改自己的ip地址&#xff0c;以及看在哪个主机上操作 这里记得写自己的token 常见报错及解决方法 我只在下边讲…

GDPU Vue前端框架开发 ecmascript6初步使用

前端框架基础&#xff0c;打造你的前端应用。 箭头函数 使用箭头函数实现求多个数的和&#xff0c;可以有一个参数&#xff0c;也可以有多个或零个参数。 let sum (...numbers) > {return numbers.reduce((acc, curr) > acc curr, 0);};let asum(); let bsum(1); let…

实战千问2大模型第五天——VLLM 运行 Qwen2-VL-7B(多模态)

一、简介 VLLM 是一种高效的深度学习推理库&#xff0c;通过PagedAttention算法有效管理大语言模型的注意力内存&#xff0c;其特点包括24倍的吞吐提升和3.5倍的TGI性能&#xff0c;无需修改模型结构&#xff0c;专门设计用于加速大规模语言模型&#xff08;LLM&#xff09;的…

生成对抗网络(GAN,Generative Adversarial Network)

生成对抗网络&#xff08;GAN&#xff0c;Generative Adversarial Network&#xff09;是一种深度学习模型&#xff0c;由两部分组成&#xff1a;生成器&#xff08;Generator&#xff09;和判别器&#xff08;Discriminator&#xff09;。生成器的目标是生成逼真的样本&#x…

Xinstall品牌揭秘:如何成为App拉新的行业翘楚?

在移动互联网时代&#xff0c;App作为连接用户与服务的桥梁&#xff0c;其重要性不言而喻。然而&#xff0c;随着市场竞争的加剧&#xff0c;App拉新&#xff08;即吸引新用户下载并使用App&#xff09;的难度也在逐渐增大。传统的营销方式往往面临着成本高、效率低、用户留存差…

理解PID(零)——什么是PID

PID控制器是一种广泛用于各种工业控制场合的控制器&#xff0c;它结构简单&#xff0c;可以根据工程经验整定参数Kp,Ki,Kd. 虽然现在控制专家提出了很多智能的控制算法&#xff0c;比如神经网络&#xff0c;模糊控制等&#xff0c;但是PID仍然被广泛使用。常见的PID控制器有位置…