Debian 上 Jenkins 生成构建报告的实用做法
一 前置准备
- 在 Debian 上安装并启动 Jenkins(确保已安装 Java):
- 导入密钥与源并安装:sudo apt update && sudo apt install jenkins
- 启动与开机自启:sudo systemctl enable --now jenkins
- 访问 http://服务器IP:8080 完成初始化
- 在 Jenkins 管理界面 → 插件管理 安装所需插件(按需选择):
- HTML Publisher plugin(发布 HTML 报告)
- JUnit(收集与趋势展示测试报告)
- Allure 插件(若使用 Allure 报告)
二 常用报告方式与示例
-
JUnit 测试报告(通用、可统计趋势)
- 构建步骤中产出 JUnit XML(如 Gradle/Maven/pytest 等均可)
- Pipeline 示例:
- pipeline {
- agent any
- stages {
- stage(‘Test’) { steps { sh ‘./gradlew check’ } }
- }
- post {
- always { junit ‘/build/reports//*.xml’ }
- }
- }
- 作用:Jenkins 会汇总测试结果并展示趋势,失败用例可将构建标记为 UNSTABLE。
-
HTML 报告(原生或工具生成)
- 方式 A(通用 HTML):在构建步骤生成 HTML(如 pytest --html=report.html --self-contained-html),构建后操作添加 Publish HTML reports,配置报告目录与首页文件名,构建后在项目页面点击 HTML Report 查看。
- 方式 B(Allure 报告):安装 Allure 命令行,在 全局工具配置 中注册 Allure;Pipeline 示例:
- stage(‘Generate Allure Report’) {
- steps { sh ‘allure generate allure-results -o allure-report --clean’ }
- }
- 构建后操作选择 Allure Report 并指向 allure-report 目录。
-
归档产物(便于下载与留存)
- 将报告或构建产物归档,便于审计与回溯:
- archiveArtifacts artifacts: ‘/build/libs//.jar, /allure-report//’, fingerprint: true
三 HTML 报告样式与 JS 失效的处理
- 现象:在 Jenkins 中查看时 CSS/JS 不生效、交互按钮不可用。
- 原因:Jenkins 默认启用 CSP(Content-Security-Policy),会阻止内联样式/脚本与外链资源。
- 解决方案(按安全性与持久化选择):
- 临时生效(重启后失效):进入 系统管理 → 脚本命令行,执行
- System.setProperty(“hudson.model.DirectoryBrowserSupport.CSP”, “”)
- 永久生效(Debian systemd 场景):编辑 /etc/default/jenkins,在 JENKINS_JAVA_OPTIONS 中追加
- -Dhudson.model.DirectoryBrowserSupport.CSP=“default-src ‘self’; style-src ‘self’ ‘unsafe-inline’; script-src ‘self’ ‘unsafe-inline’;”
- 然后执行:sudo systemctl daemon-reload && sudo systemctl restart jenkins
- 说明:放宽策略会带来一定安全风险,生产环境建议结合报告内容来源与网络隔离策略谨慎配置。
四 实用建议
- 报告路径尽量使用相对工作空间路径,避免绝对路径导致归档或发布失败。
- 使用 JUnit 报告可获得测试趋势、失败归因与构建稳定性判定;配合 archiveArtifacts 留存产物与报告压缩包。
- 使用 Allure 时,确保每次构建前清理旧结果(如 allure generate 加 –clean),避免历史残留影响展示。