目录

步骤详细说明

1. 安装 Email Extension Plugin

2. 配置邮件服务器

3. 编写 Jenkinsfile

详细步骤说明

注意事项


在Jenkins Pipeline中生成测试报告并将其发送到个人邮箱,可以通过以下步骤实现:

  1. 生成测试报告:使用现有的生成测试报告的工具,将测试结果保存为指定格式的文件(如JUnit XML或HTML)。
  2. 配置邮件插件:Jenkins有一个Email Extension Plugin插件,可以通过它来发送邮件并包含构建结果和文件附件。
  3. 编写Pipeline脚本:在Jenkinsfile中生成测试报告并通过邮件插件发送报告。

步骤详细说明

1. 安装 Email Extension Plugin

确保你已经在Jenkins中安装了Email Extension Plugin。你可以按照以下步骤进行安装:

  • 进入Jenkins的管理页面。
  • 点击“Manage Jenkins”(管理Jenkins)-> “Manage Plugins”(管理插件)-> 点击 “Available”(可选插件)标签。
  • 搜索 Email Extension Plugin,然后安装它。

2. 配置邮件服务器

  • 进入 Jenkins 管理页面。
  • 点击“Manage Jenkins”-> “Configure System”。
  • Extended E-mail Notification部分,配置 SMTP 邮件服务器信息,比如 SMTP 主机名、端口、发送者邮箱地址等。

3. 编写 Jenkinsfile

以下是一个示例 Pipeline 脚本,演示了如何生成测试报告并通过邮件发送报告:

pipeline {
    agent any

    tools {
        // 使用特定版本的Python
        python 'Python3'
    }

    environment {
        // 收件人邮箱,可根据需要设置为参数化变量
        RECIPIENTS = 'your_email@example.com'
    }

    stages {
        stage('Checkout') {
            steps {
                // 检出代码
                checkout scm
            }
        }

        stage('Install Dependencies') {
            steps {
                // 安装依赖
                sh 'pip install -r requirements.txt'
            }
        }

        stage('Run Tests') {
            steps {
                // 运行测试,并生成JUnit格式的报告
                sh 'pytest --junitxml=reports/test-results.xml --html=reports/test-report.html'
            }
        }

        stage('Publish Reports to Jenkins') {
            steps {
                // 发布测试报告到 Jenkins
                junit 'reports/test-results.xml'
                publishHTML(target: [
                    reportName : 'HTML Report', 
                    reportDir: 'reports', 
                    reportFiles: 'test-report.html', 
                    keepAll: true, 
                    alwaysLinkToLastBuild: true, 
                    allowMissing: false
                ])
            }
        }
    }

    post {
        always {
            // 发送邮件通知
            emailext attachmentsPattern: 'reports/test-report.html', 
                to: "${RECIPIENTS}",
                subject: "Build #${env.BUILD_NUMBER} - ${currentBuild.fullDisplayName}",
                body: """
                <p>Hi team,</p>
                <p>The build #${env.BUILD_NUMBER} for ${env.JOB_NAME} has completed.</p>
                <p>Check the attached test report for more details.</p>
                <p>Build URL: ${env.BUILD_URL}</p>
                """
            
            // 清理工作空间
            cleanWs()
        }
    }
}

详细步骤说明

  1. agent any : 表示在任何可用的节点上执行这个Pipline
  2. tools: 指定Pipline使用的工具 在这里的例子是指定了python3版本
  3. checkout scm :从源代码管理系统检出源码 默认从Jenkins创建的SCM配置中检出代码
  4. sh 'pytest --junitxml=reports/test-results.xml --html=reports/test-report.html':使用pytest运行测试 并将结果生成Junit格式的XML文件和HTML格式的测试报告
  5.  junit 'reports/test-results.xml' :使用Jenkins的Junit插件解析并展示测试结果
  6. Publish(...):发布HTML格式的测试报告到Jenkins中
  7. post:无论是否构建成功,始终执行以下步骤
    (1)emailtext:发送包含测试报告邮件的插件指令,将HTML格式的测试报告作为附件发送到指定的邮箱
    (2) cleanWs():清理工作空间

注意事项

  • 邮件服务器配置:确保你已经正确配置了Jenkins的邮件服务器设置。

  • 权限问题:确保Jenkins节点有权限访问并发送邮件。

  • 收件人邮箱:RECIPIENTS 变量替换为你的实际邮箱地址,或者在Pipeline配置中参数化处理。

通过这些步骤,你可以在每次构建后生成测试报告,并自动将报告发送到指定邮箱,从而便于查看和分析测试结果。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐