首页 > 其他分享 >jenkins学习19 - pipline 构建项目生成 allure报告并发送邮箱

jenkins学习19 - pipline 构建项目生成 allure报告并发送邮箱

时间:2023-12-15 18:35:42浏览次数:35  
标签:插件 19 allure 构建 BUILD 邮箱 jenkins 邮件

前言

个人其实一直的不太喜欢用邮箱发送报告,测试报告用邮件通知这都是五六年前的事情了,但有部分小伙伴依然执着于发邮件报告通知。
这里整理了下发邮箱通知的教程。

配置你的邮箱

配置邮箱这一步最繁琐,由于每个人使用的邮箱不一样,配置也是不一样的,没有固定的答案。
这就导致很多人在配置邮箱这一步就被卡住......

安装 Email Extension Plugin 插件

jenkins首页-系统管理-插件管理,可选插件,搜索: Email ,安装Email Extension Plugin插件

jenkins首页-系统管理-系统配置页面,先配置系统管路员邮箱地址,也就是发件人的地址

测试邮箱的配置是否能发送邮件

SMTP服务器 邮箱的服务器地址,不同的邮箱这里是不一样的
用户名 你自己的邮箱地址,跟上面系统管理员邮箱地址一致
密码 QQ邮箱是用的SMTP_SSL模式,所以这里不是QQ的密码,是授权码
使用SSL协议 QQ邮箱需勾选,腾讯企业邮箱不需要勾选
smtp端口 一般默认465
Test e-mail recipient 测试收件人的地址

点右侧的 Test configuration 按钮即可测试邮件测试

Extended E-mail Notification配置

上一步是jenkins系统自带的邮件功能,功能比较少,接着使用Email Extension Plugin插件,前面配置跟上面一步差不多

Default Content Type 邮件的类型使用HTML 格式
Default Recipients 是默认的收件人

接着配置邮件的模板内容,也就是这个Email邮件的高级内容

  • Default Subject 邮件的主题,一般不用改
  • Default Content 邮件的正文内容,html格式,内容如下
<!DOCTYPE html>    
<html>    
<head>    
<meta charset="UTF-8">    
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>    
</head>    
    
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"    
    offset="0">    
    <table width="95%" cellpadding="0" cellspacing="0"  style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">    
        <tr>    
            本邮件由系统自动发出,无需回复!<br/>            
            各位同事,大家好,以下为${PROJECT_NAME }项目构建信息</br> 
            <td><font color="#CC0000">构建结果 - ${BUILD_STATUS}</font></td>   
        </tr>    
        <tr>    
            <td><br />    
            <b><font color="#0B610B">构建信息</font></b>    
            <hr size="2" width="100%" align="center" /></td>    
        </tr>    
        <tr>    
            <td>    
                <ul>    
                    <li>项目名称 : ${PROJECT_NAME}</li>    
                    <li>构建编号 : 第${BUILD_NUMBER}次构建</li>    
                    <li>触发原因: ${CAUSE}</li>    
                    <li>构建状态: ${BUILD_STATUS}</li>    
                    <li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>    
                    <li>构建  Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>    
                    <li>测试报告: <a href="${PROJECT_URL}allure">${PROJECT_URL}allure</a></li>    
                </ul>    

<h4><font color="#0B610B">失败用例</font></h4>
<hr size="2" width="100%" />
$FAILED_TESTS<br/>

<h4><font color="#0B610B">最近提交(#$SVN_REVISION)</font></h4>
<hr size="2" width="100%" />
<ul>
${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"}
</ul>
详细提交: <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a><br/>

            </td>    
        </tr>    
    </table>    
</body>    
</html>

生成allure报告

插件管理搜索:allure, 安装 allure 插件

系统管理-全局工具管理,安装allure命令行工具

新建流水线任务

新建流水线任务

配置Pipeline script

完整的pipline脚本

pipeline {
    agent any
    stages {
        stage('your-tests') {
            steps {
                // check out git仓库
                git credentialsId: '证书id', url: 'https://gitee.com/你自己仓库地址'
                // Depends on your language / test framework
                // sh 'pip3.9 install -r requirements.txt'
                // 执行pytest用例,生成报告
                sh 'python3.9 -m pytest --alluredir ./report'
            }
            post{
                always{
                    script{
                      echo "构建后操作 allure report.........."
                      allure includeProperties: false, jdk: '', results: [[path: 'report']]
                    }
                }
            }
        }
    }
    
     post {
        always{
            script{
                println("流水线结束后做的事情")
                echo "send email"
                emailext body: '''
                构建  Url : <a href="${BUILD_URL}">${BUILD_URL}</a>  <br>
                测试报告: <a href="${PROJECT_URL}allure">${PROJECT_URL}allure</a> 
                ''', 
                subject: '$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!', 
                to: '283340479'
                
            }
        }
        
        success{
            script{
                println("流水线成功后,要做的事情")
            }
        
        }
        failure{
            script{
                println("流水线失败后,要做的事情")
            }
        }
        
        aborted{
            script{
                println("流水线取消后,要做的事情")
            }
        
        }
    }

    
}

配置完成后,执行job,邮箱就能收到运行报告了

其中邮件正文内容可以自定义自己想要的内容,比如前面在系统设置里配置的邮箱默认发送内容,复制过来就可以了。

标签:插件,19,allure,构建,BUILD,邮箱,jenkins,邮件
From: https://www.cnblogs.com/yoyoketang/p/17898767.html

相关文章

  • 计概杂烩2019
    2019期末癌细胞体积#include<stdio.h>doubler;intmain(void){scanf("%lf",&r);printf("%.3lf",4.0*3.14159*r*r*r/3); return0;}寻找三角形#include<stdio.h>/*C语言初始模板程序*/intmain(void){inta,b,n,ans=0;......
  • macOS Monterey 12.7.2 (21G1974) Boot ISO 原版可引导镜像下载
    macOSMonterey12.7.2(21G1974)BootISO原版可引导镜像本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘安装,或者在虚拟机中启动安装。另外也支持在Windows和Linux中创建可引导介质。macOSMonterey12.7.x如无特殊说明,皆为安......
  • Jenkins 构建 AWS Fargate 服务的自动化更新控制
    引言在云原生应用开发中,AWSFargate是一种无服务器容器编排服务,能够简化容器的部署和管理。结合Jenkins,我们可以实现对AWSFargate服务的自动构建和更新控制。本文将介绍如何通过Python脚本实现Fargate服务的自动构建和部署,并通过DingDing机器人发送通知。Jenkins构建A......
  • 世微 AP5199降压恒流驱动IC 4--450V 6A调光 恒流源LED驱动器
    AP5199LED驱动器描述AP5199是以恒定关断时间模式操作的平均电流模式控制LED驱动器IC。不像AP5160,这种控制IC不会产生峰均误差,因此大大提高了精度、线性和LED电流的负载调节,而不需要任何环路补偿或高侧电流感测。这个输出LED电流精度为±3%。IC配备了电流限制比较器,用于打嗝模式输......
  • CF 1904 D. Set To Max
    EasyVersionHardVersionHardVersion的做法可以从EasyVersion用数据结构优化得到。首先我们想一下,什么情况需要进行操作?显然是\(a_i!=b_i\)的时候,并且当\(a_i>b_i\)的时候将会无解。那么当\(a_i<b_i\)的时候,应该怎么办呢,显然应该寻找左边和右边最近的\(j\),.满足\(a_j=b_i......
  • devops:jenkins的简单配置(实现普通CI)
    一、实现自动部署思路 二、jenkins配置1、需要在jenkins中配置好maven和jdk,用于编译代码,将获取的代码编译成jar包。(1)maven需要配置代理仓库,在通过mv命令将maven和jdk移动到jenkins中的data目录下方便引用maven配置:<mirror><id>alimaven</id><name>aliy......
  • luogu1972题解
    还是先写被卡的做法吧。节点的区间用了现用现计算卡常过了。被卡了一上午,难过。话说有人说我码风有点抽象。思路主席树做法。a[i]是贝壳序列。先求出nxt,即与a[i]相同的下一个a[j]的下标j。用p114514[i]记了值为\(i\)的数的下标,循环到序列第\(j\)个数的时候,先......
  • Aapche Dubbo Java反序列化漏洞(CVE-2019-17564)
    AapcheDubboJava反序列化漏洞(CVE-2019-17564)漏洞描述ApacheDubbo是一款高性能、轻量级的开源JavaRPC服务框架。Dubbo可以使用不同协议通信,当使用http协议时,ApacheDubbo直接使用了Spring框架的org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter类做远程......
  • F. 纪念品 - 2023HBUCM程序设计竞赛/CSP-J2019
    题面小伟突然获得一种超能力,他知道未来\(T\)天\(N\)种纪念品每天的价格。某个纪念品的价格是指购买一个该纪念品所需的金币数量,以及卖出一个该纪念品换回的金币数量。每天,小伟可以进行以下两种交易无限次:任选一个纪念品,若手上有足够金币,以当日价格购买该纪念品;卖出持有的......
  • CF1900D Small GCD
    Link这是一个需要欧拉反演的题目首先,可以知道只和数字之间的大小有关,数列的顺序无关,那么就可以首先排一个序方便解决该问题。根据欧拉函数的性质,知道\(n=\sum_{d|n}\phi{(n)}\)那么我们每次先确定中间的数\(a_j\),然后根据公式,得他它得贡献是\(\sum_{i=1}^{j-1}gcd(a_{i},a_{j}......