首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Jenkins学习19 - pipline 构建项目生成 allure报告并发送邮箱

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

作者头像
上海-悠悠
发布于 2023-12-18 11:22:50
发布于 2023-12-18 11:22:50
37706
代码可运行
举报
运行总次数:6
代码可运行

前言

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

配置你的邮箱

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

安装 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格式,内容如下
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!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脚本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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,邮箱就能收到运行报告了

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-12-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【Linux】《how linux work》第 七 章 系统配置 系统配置: 日志、系统时间、批处理任务和用户(2)
Unix machines depend on accurate timekeeping. The kernel maintains the system clock, which is the clock that is consulted when you run commands like date. You can also set the system clock using the date command, but it’s usually a bad idea to do so because you’ll never get the time exactly right. Your system clock should be as close to the correct time as possible.
阿东
2024/05/06
2960
【Linux】《how linux work》第 七 章 系统配置 系统配置: 日志、系统时间、批处理任务和用户(2)
Rsyslog配置及使用教程
1.Rsyslog介绍 Rsyslog is Rocket-fast System for Log processing.Rsyslog是CentOS6系列默认的日志处理软件。Rsyslog基于模块化设计,提供高性能,安全的日志处理系统。Rsyslog是多线程的,支持TCP,UDP,TLS,RELP.Rsyslog实际上syslog的一个增强版本。
星哥玩云
2022/07/04
1.8K0
Rsyslog配置及使用教程
linux系统日志管理详解
日志文件记录了时间,地点,人物,事件四大信息,故系统出现故障时,可以查询日志文件。 系统的日志文件默认都集中放置到/var/log/目录内,其中又以message记录的信息最多。 日志文件的重要性主要体现在以下三方面:
咻一咻
2020/05/29
9.6K0
Linux 系统安全
  目前,大多数企业在应用中往往是 Linux、Unix 和 Windows 操作系统共存形成异构网络。就安全性而言,Linux 相对于 Windows 具有更多的优势。但是,不管选择哪一种 Linux 发行版本,在安装完成以后都应该进行一些必要的配置,来增强它的安全性。
LuckySec
2022/11/02
2.1K0
Linux 系统安全
linux rsyslog配置_syslog配置
在centos7中,默认的日志系统是rsyslog,它是一个类unix计算机系统上使用的开源工具,用于在ip网络中转发日志信息。rsyslog采用模块化设计,是syslog的替代品。rsyslog具有如下特点:
全栈程序员站长
2022/11/08
12.1K0
linux rsyslog配置_syslog配置
rsyslog日志服务器_php日志系统
rsyslog可以理解为增强版的syslog,在syslog的基础上扩展了很多其他功能,如数据库支持(Mysql,PostgreSQL、Oracle等)、日志内容筛选、定义日志格式模板等。除了默认的udp协议外,rsyslog还支持tcp协议来接收日志,可以yum安装,也可以源码安装,下载地址:
全栈程序员站长
2022/09/21
5.3K0
非常详细的rsyslogd & logrotate配置文件解析[通俗易懂]
rsyslog服务和logrotate服务 ====================================================================== rsyslog 是一个 syslogd 的多线程增强版。 现在Fedora和Ubuntu, rhel6默认的日志系统都是rsyslog了
全栈程序员站长
2022/09/21
2.4K0
Linux rsyslogd服务以及日志文件「建议收藏」
在 CentOS 6.x 中,日志服务已经由 rsyslogd 取代了原先的 syslogd。Red Hat 公司认为 syslogd 已经不能满足工作中的需求,rsyslogd 相比 syslogd 具有一些新的特点:
全栈程序员站长
2022/09/21
7900
Linux下rsyslog日志收集服务环境部署记录
rsyslog 可以理解为多线程增强版的syslog。 在syslog的基础上扩展了很多其他功能,如数据库支持(MySQL、PostgreSQL、Oracle等)、日志内容筛选、定义日志格式模板等。目前大多数Linux发行版默认也是使用rsyslog进行日志记录。rsyslog提供了三种远程传输协议:
星哥玩云
2022/07/13
2.1K0
linux日志系统
linux 软件 syslog syslog-ng(next generation) 日志系统:syslog 负责统一记录日志 syslog服务: syslogd:系统,非内核产生的信息。 klogd:内核,专门负责记录内核产生的日志信息。 kernel-->物理终端(/dev/console )-->/var/log/dmsg klog dmesg dmesg - print or control the kernel ring buffer /sbin/init ---syslo
若与
2018/04/25
18.2K0
linux日志系统
Linux日志管理
要知道的是,我们的 Linux 主机在背景之下有相当多的 daemons 同时在工作着,这些工作中的程序总是会显示一些讯息,这些显示的讯息最终会被记载到登录文件当中啦。也就是说,记录这些系统 的重要讯息就是登录文件的工作啦!
小柒吃地瓜
2020/04/23
9.2K0
Linux系统日志分析与管理
Linux系统内核和许多程序会产生各种错误信息、警告信息和其他的提示信息,这些信息对管理员了解系统的运行状态是非常有用的,所以应该把它们写到日志文件中去,完成这个过程的程序就是syslog,syslog可以根据日志的类别和优先级将日志保存到不同的文件中.
王 瑞
2022/12/28
5K0
Linux日志管理服务 rsyslogd
1) 日志文件是重要的系统信息文件,其中记录了许多重要的系统事件,包括用户的登录信息、系统的启动信息、系统的安全信息、邮件相关信息、各种服务相关信息等。
兮动人
2024/02/15
4500
Linux日志管理服务 rsyslogd
Linux 日志管理
CentOS7.6日志服务是rsyslogd ,CentOS6.x日志服务是syslogd 。rsyslogd功能更强大。rsyslogd的使用、日志文件的格式,和 syslogd 服务兼容的。原理示意图
用户9615083
2022/12/25
5.6K0
Linux 日志管理
Linux——配置漏洞修复
思索
2024/08/16
6750
Linux下使用Rsyslog搭建集中日志服务器
ryslog 是一个快速处理收集系统日志的程序,提供了高性能、安全功能和模块化设计。rsyslog 是syslog 的升级版,它将多种来源输入输出转换结果到目的地。
星哥玩云
2022/07/13
3.4K0
Linux下使用Rsyslog搭建集中日志服务器
rsyslog详解实战和避坑
目标是要把线上环境的debug日志及集中化收集起来,一方面是方便开发调试;一方面是避免直接到线上环境查看,存在安全隐患。
sunsky
2020/08/20
10.6K0
rsyslog详解实战和避坑
简单的LNMP安全加固
Nginx配置文件 (nginx.conf):/usr/local/nginx/nginx.conf
Mirror王宇阳
2020/11/12
8770
rsyslog+loganalyzer日志服务器部署记录
日志功能对于操作系统是相当重要的,在日常运维工作中,无论是系统还是应用等出了任何问题,我们首先想到的便是分析日志,查找问题原因。自从CentOS 6系统开始,CentOS便开始使用rsyslog做为日志收集服务了,相对于之前的syslog它能够支持多线程,数据库存储,支持更多了传输协议等等优点。之前介绍了Linux下rsyslog日志收集服务环境部署记录,下面再结合LogAnalyzer进行部署说明。 LogAnalyzer则是一款基于 PHP 开发的 syslog 日志和其他网络事件数据的 Web 前端。
洗尽了浮华
2018/07/03
2.2K0
rsyslogd_Syslog
最近遇到一个需求,需要把线上环境的debug日志及集中化收集起来,一方面是方便开发调试;一方面是避免直接到线上环境查看,存在安全隐患。
全栈程序员站长
2022/09/21
2.7K0
rsyslogd_Syslog
相关推荐
【Linux】《how linux work》第 七 章 系统配置 系统配置: 日志、系统时间、批处理任务和用户(2)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档