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格式,内容如下

    ${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志 本邮件由系统自动发出,无需回复!
    各位同事,大家好,以下为${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>    

    生成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,邮箱就能收到运行报告了

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

    相关推荐
    X1A0RAN1 天前
    Jenkins Pipeline 变量打印指南
    运维·servlet·jenkins
    heimeiyingwang1 天前
    【CI/CD·Jenkins篇】多节点构建:Agent 配置与任务分发策略
    ci/cd·jenkins
    heimeiyingwang2 天前
    【CI/CD·Jenkins篇】环境搭建:从零部署 Jenkins 主从架构
    ci/cd·jenkins
    heimeiyingwang2 天前
    【CI/CD·Jenkins篇】Pipeline 基础:Declarative 与 Scripted 语法详解
    ci/cd·pipeline·jenkins
    遨游DATA3 天前
    Jenkins 修改 config.xml 后页面仍是旧配置:让 live job 配置真正生效
    ci/cd·jenkins·devops·故障排查·config.xml
    Dobby_053 天前
    【CICD】Jenkins Pipeline 快速学习入门
    运维·学习·jenkins
    上海安当技术4 天前
    统一身份认证平台怎么落地?11 个异构业务系统接入 ASP 的完整实施路径
    数据库·servlet·架构·kubernetes·jenkins
    回眸不遇5 天前
    Elasticsearch嵌套类型nested使用指南
    大数据·elasticsearch·jenkins
    回眸不遇6 天前
    类型的区别和应用场景 nested 每个对象独立存储为隐藏的子文档 适合存储数组 查询的时候有特定的语法 nested查询 且字段要 ...
    运维·jenkins
    X1A0RAN7 天前
    容器化部署 Jenkins 教程
    运维·docker·jenkins