温馨提示×

Ubuntu Jenkins怎样进行测试报告生成

小樊
45
2025-11-02 12:55:07
栏目: 智能运维

Ubuntu Jenkins生成测试报告的完整流程

一、前置准备

  1. 安装Jenkins:在Ubuntu服务器上执行以下命令安装Jenkins(需提前安装Java 11+):

    sudo apt update
    sudo apt install openjdk-11-jdk
    wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
    sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
    sudo apt update
    sudo apt install jenkins
    sudo systemctl start jenkins
    sudo systemctl enable jenkins
    

    访问http://<服务器IP>:8080,输入初始管理员密码(位于/var/lib/jenkins/secrets/initialAdminPassword)完成初始化。

  2. 安装必要插件

    • 进入Jenkins→系统管理插件管理可选插件,搜索并安装以下插件:
      • JUnit Plugin:用于发布JUnit/XML格式的测试报告(适用于单元测试、集成测试等)。
      • HTML Publisher Plugin:用于发布自定义HTML格式的测试报告(如Selenium的可视化报告)。
      • Allure Plugin(可选):用于生成更丰富的Allure测试报告(支持图表、趋势分析等,适用于复杂测试场景)。

二、配置测试任务

1. 创建Pipeline项目

进入Jenkins主页→新建任务→输入项目名称→选择Pipeline→点击确定

2. 配置Pipeline脚本

Pipeline配置项中,选择Pipeline script from SCM(推荐,便于版本控制),设置以下参数:

  • SCM:选择代码托管平台(如Git),填写仓库URL及认证信息。
  • Script Path:指定项目根目录下的Jenkinsfile路径(如Jenkinsfile)。

三、编写Jenkinsfile定义测试流程

在项目根目录创建Jenkinsfile,定义构建→测试→发布报告的流水线流程。以下是常见测试类型的配置示例:

1. 单元测试(JUnit格式)

适用于Java项目(使用Maven/Gradle)或Python项目(使用unittest框架):

pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                git url: 'https://github.com/your-repo/your-project.git'
            }
        }
        stage('Build') {
            steps {
                sh 'mvn clean package' // Java项目:Maven构建
                // sh 'gradle build'    // 或Gradle构建
                // sh 'python3 setup.py install' // Python项目:安装依赖
            }
        }
        stage('Test') {
            steps {
                sh 'mvn test' // Java项目:运行JUnit测试
                // sh 'python3 -m unittest discover tests/' // Python项目:运行单元测试
            }
        }
    }
    post {
        always {
            // 发布JUnit测试报告(匹配**/target/surefire-reports/*.xml或**/test-reports/*.xml)
            junit '**/test-reports/*.xml'
        }
    }
}

2. UI自动化测试(Selenium+Allure)

适用于Python/Selenium项目,生成Allure格式的可视化报告:

pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                git url: 'https://github.com/your-repo/selenium-project.git'
            }
        }
        stage('Install Dependencies') {
            steps {
                sh 'pip3 install -r requirements.txt' // 安装Selenium、Allure-Python等依赖
            }
        }
        stage('Run UI Tests') {
            steps {
                sh 'pytest tests/ --alluredir=./target/allure-results' // 生成Allure结果文件
            }
        }
    }
    post {
        always {
            // 发布Allure测试报告
            allure includeProperties: false,
                   jdk: '',
                   results: [[path: './target/allure-results']]
        }
    }
}

3. API测试(Postman+Newman)

适用于Postman编写的API测试用例,使用Newman CLI运行:

pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                git url: 'https://github.com/your-repo/api-tests.git'
            }
        }
        stage('Run API Tests') {
            steps {
                sh 'newman run collections/api-tests.json --reporters junit --reporter-junit-export ./test-reports/api-report.xml' // 生成JUnit格式报告
            }
        }
    }
    post {
        always {
            junit '**/test-reports/api-report.xml' // 发布JUnit报告
        }
    }
}

4. 自定义HTML报告(如Selenium截图)

若测试脚本生成了HTML报告(如Selenium的report.html),使用HTML Publisher Plugin发布:

pipeline {
    agent any
    stages {
        stage('Run Tests') {
            steps {
                sh 'python3 tests/run_tests.py' // 假设脚本生成了test-reports/report.html
            }
        }
    }
    post {
        always {
            publishHTML(
                target: [
                    allowMissing: false,
                    alwaysLinkToLastBuild: true,
                    keepAll: true,
                    reportDir: 'test-reports', // 报告所在目录(相对于工作空间)
                    reportFiles: 'report.html', // 报告文件名
                    reportName: 'Selenium Test Report' // 报告显示名称
                ]
            )
        }
    }
}

四、运行任务并查看报告

  1. 触发构建:回到Jenkins项目页面,点击Build Now,等待流水线执行完成。
  2. 查看测试报告
    • JUnit报告:构建完成后,点击构建历史→选择对应构建→测试报告,查看详细的测试结果(通过率、失败用例等)。
    • Allure报告:点击构建历史→选择对应构建→Allure Report,查看可视化报告(包含趋势图、失败详情等)。
    • HTML报告:点击构建历史→选择对应构建→Selenium Test Report(或其他自定义名称),查看HTML格式的测试结果。

常见问题解决

  • JUnit报告未生成:确保测试框架输出的XML文件路径与junit步骤中的路径一致(如**/test-reports/*.xml)。
  • Allure报告无法渲染:检查Jenkins的全局工具配置中是否正确安装了Allure,并确认allure命令可在终端执行(allure --version)。
  • HTML报告无法加载:若出现“Refused to apply inline style”错误,需修改Jenkins的Content Security Policy(CSP):进入系统管理脚本控制台,执行System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

0