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

前言

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

这里整理了下发邮箱通知的教程。

配置你的邮箱

配置邮箱这一步最繁琐,由于每个人使用的邮箱不一样,配置也是不一样的,没有固定的答案。

这就导致很多人在配置邮箱这一步就被卡住...

安装 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"> 本邮件由系统自动发出,无需回复!
    各位同事,大家好,以下为${PROJECT_NAME }项目构建信息
    构建结果 - ${BUILD_STATUS}

    构建信息

    失败用例


    $FAILED_TESTS

    最近提交(#$SVN_REVISION)


      ${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="
    • %d [%a] %m
    • "}
    详细提交: ${PROJECT_URL}changes
    复制代码
              </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,邮箱就能收到运行报告了

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

    相关推荐
    oMcLin1 天前
    如何在Rocky Linux 8.5上部署并优化Jenkins流水线,支持跨平台CI/CD自动化与容器化构建?
    linux·ci/cd·jenkins
    无心水1 天前
    【分布式利器:腾讯TSF】7、TSF高级部署策略全解析:蓝绿/灰度发布落地+Jenkins CI/CD集成(Java微服务实战)
    java·人工智能·分布式·ci/cd·微服务·jenkins·腾讯tsf
    记得开心一点嘛2 天前
    Elasticsearch
    运维·jenkins
    oMcLin2 天前
    如何在 Ubuntu 22.04 上部署并优化 Jenkins 2.x 流水线,提升持续集成与自动化测试的效率?
    ubuntu·ci/cd·jenkins
    世界尽头与你2 天前
    CVE-2024-43044_ Jenkins agent connections 文件读取漏洞
    安全·网络安全·渗透测试·jenkins
    tianyuanwo2 天前
    TERM变量迷思:从Jenkins节点连接差异看终端仿真与构建系统的微妙关系
    运维·ssh·jenkins·java web·term
    一勺菠萝丶2 天前
    Jenkins 打包显示 SUCCESS 但产物不全?日志出现 Killed 的排查与解决(小白版)
    运维·jenkins
    Anakki2 天前
    企业级 Elastic Stack 集成架构:Spring Boot 3.x 与 Elasticsearch 8.x 深度实践指南
    运维·jenkins·springboot·elastic search
    一只往上爬的蜗牛2 天前
    【Jenkins】Jenkins 中如何在 Build Artifacts 显示自动化测试生成的文件
    运维·jenkins
    2501_906150562 天前
    开源问卷平台DWSurvey开发配置记录
    运维·开源·jenkins