在 Debian 上,Jenkins 生成测试报告可按环境准备、插件安装、任务配置、报告查看与安全加固四个环节落地。下面给出可直接执行的步骤与示例。
一 环境准备与插件安装
- 安装 Java 11+(Jenkins 运行依赖):sudo apt update && sudo apt install -y openjdk-11-jdk;验证:java -version。
- 添加 Jenkins 官方 APT 源 并安装:
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
echo “deb http://pkg.jenkins.io/debian-stable binary/” | sudo tee /etc/apt/sources.list.d/jenkins.list
sudo apt update && sudo apt install -y jenkins
- 启动并设置开机自启:sudo systemctl enable --now jenkins;默认监听 8080 端口。
- 首次访问 http://<服务器IP>:8080,解锁管理员:初始密码位于 /var/lib/jenkins/secrets/initialAdminPassword。
- 常用报告相关插件:JUnit Plugin、HTML Publisher Plugin、Allure Plugin、Performance Plugin。
二 报告类型与生成方式
- JUnit 测试报告(Java/Maven/Gradle 或 Python 等产出 JUnit XML)
- 构建产出:Maven 生成 target/surefire-reports/*.xml;Gradle 生成 build/test-results/;Python 可用 pytest 生成 –junitxml=reports/pytest.xml。
- Jenkins 发布:Freestyle 在“构建后操作”选择 Publish JUnit test result report;Pipeline 使用 junit ‘路径/模式’。
- HTML 报告(覆盖率、静态扫描、手工汇总页等)
- 构建产出:工具生成 HTML 目录(如覆盖率、Sonar 页面、测试汇总页)。
- Jenkins 发布:Freestyle 选择 Publish HTML reports;配置 HTML directory to archive 与 Index page[s](如 index.html)。
- Allure 报告(pytest、Java 等生态)
- 安装 Allure CLI(Debian 可用包管理器或手动安装),验证:allure --version。
- 测试执行产出:写入 allure-results/(JSON 结果);pytest 示例:pytest --alluredir=allure-results。
- Jenkins 发布:安装 Allure Plugin,在“全局工具配置”添加 Allure Commandline;Pipeline 使用 allure results: [[path: ‘allure-results’]]。
- JMeter 性能测试报告
- 执行与产出:jmeter -n -t test.jmx -l result.jtl;JMeter 5.1+ 可直接生成 HTML 报告(-e -o reports/html)。
- Jenkins 发布:使用 Performance Plugin 发布 result.jtl,查看响应时间、吞吐量、错误率与趋势。
三 示例 Pipeline 片段
- JUnit(Maven)
stage('Test') { steps { sh 'mvn test' } }
post { always { junit 'target/surefire-reports/*.xml' } }
- Allure(pytest)
stage('Install deps') { steps { sh 'pip install -r requirements.txt allure-pytest' } }
stage('Test') { steps { sh 'pytest --alluredir=allure-results' } }
stage('Report') {
steps { allure([ includeProperties: false, jdk: '', reportBuildPolicy: 'ALWAYS',
results: [[path: 'allure-results']] ]) }
}
- JMeter(命令行)
stage('Performance') { steps { sh 'jmeter -n -t test.jmx -l result.jtl' } }
post { always { perfReport 'result.jtl' } }
- Python + pytest(JUnit XML)
stage('Test') {
steps {
sh 'pip install -r requirements.txt'
sh 'python -m pytest tests/ --junitxml=reports/pytest.xml'
}
}
post { always { junit 'reports/pytest.xml' } }
- PHP + PHPUnit(JUnit XML)
stage('Test') {
steps {
sh 'composer install --no-interaction --prefer-dist'
sh 'vendor/bin/phpunit --log-junit reports/phpunit.xml'
}
}
post { always { junit 'reports/phpunit.xml' } }
四 查看报告与安全加固
- 查看入口
- JUnit:构建详情页的 Test Result 与趋势图。
- HTML:项目左侧 HTML Report 菜单(若未显示,检查发布路径与索引页)。
- Allure:项目左侧 Allure Report 菜单。
- JMeter Performance:项目左侧 Performance Report 与趋势图。
- HTML 报告样式与安全策略
- 若出现样式丢失或内容被拦截,可在 Manage Jenkins → Script Console 临时放宽策略(仅测试环境):
System.setProperty(“hudson.model.DirectoryBrowserSupport.CSP”, “”)
- 生产环境建议:启用 Content Security Policy 合规配置,或通过反向代理对静态资源做白名单放行,避免关闭安全策略。