在 Debian 上把常见测试框架接入 Jenkins 的实操指南
一 环境准备与基础配置
- 安装 Java 11(Jenkins 运行依赖)与 Jenkins:
- sudo apt update && sudo apt install -y openjdk-11-jdk
- wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
- sudo sh -c ‘echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list’
- sudo apt update && sudo apt install -y jenkins
- sudo systemctl enable --now jenkins && sudo systemctl status jenkins
- 解锁与初始化:访问 http://<服务器IP>:8080,初始密码在 /var/lib/jenkins/secrets/initialAdminPassword
- 建议安装的插件:Git、Pipeline、JUnit、TestNG、Allure、HTML Publisher、Email Extension 等,用于源码拉取、流水线编排与报告展示。
二 Java 测试框架 JUnit 与 TestNG 集成
- JUnit4/5(Maven 项目)
- 构建命令:mvn clean test
- 报告路径:target/surefire-reports/*.xml
- Jenkins 配置:构建后操作选择 Publish JUnit test result report,填入上述路径;可在“高级”中设置健康阈值与允许空结果。
- TestNG(Maven 项目)
- 构建命令:mvn clean test(确保 pom 已配置 TestNG 依赖与 suite)
- 报告路径:常见为 target/surefire-reports/(TestNG 结果 XML 也会在此目录)
- Jenkins 配置:安装 TestNG Results Plugin,构建后操作选择 Publish TestNG Results,指定 XML 结果路径;也可结合 Allure 生成更友好的报告(需 Allure 命令行工具与 Jenkins Allure 插件)。
三 Python 测试框架 pytest 集成
- 安装与准备
- sudo apt install -y python3-pytest 或在项目虚拟环境内安装依赖
- Pipeline 示例
- pipeline {
agent any
stages {
stage(‘Checkout’) { steps { git ‘https://github.com/your/repo.git’ } }
stage(‘Install’) { steps { sh ‘pip install -r requirements.txt’ } }
stage(‘Test’) { steps { sh ‘pytest tests/ --junitxml=reports/results.xml’ } }
}
post {
always {
junit ‘reports/results.xml’
// 可选:Allure 报告
// allure includeProperties: false, jdk: ‘’, results: [[path: ‘allure-results’]]
}
}
}
- 说明:使用 JUnit 插件解析 JUnit XML 报告;如需 Allure,在全局工具配置 Allure Commandline,并在构建后步骤调用 allure generate。
四 常用非 Java 框架与场景
- API 测试(Postman/Newman)
- 命令:newman run collection.json --reporters junit,html
- 报告:JUnit XML 用于 Jenkins 解析,HTML 用于人读;可在 post 中归档 HTML 并发布 JUnit 结果。
- UI 自动化(Selenium)
- 方式:Maven/Gradle 执行 Selenium 测试(如 mvn test -Dtest=TestSuite)
- 报告:结合 Allure 或 JUnit XML;UI 测试建议在 Headless 环境或带 Xvnc 的虚拟显示中运行以避免浏览器无法打开的问题。
- 性能测试(JMeter)
- 命令:jmeter -n -t test.jmx -l result.jtl
- 报告:可转换为 HTML 并归档;也可结合 Ant/Maven 与 Jenkins 定时执行性能回归。
五 报告、通知与最佳实践
- 报告与可视化
- JUnit/TestNG:使用对应插件在构建页展示趋势、失败堆栈与历史对比
- Allure:安装 Allure 插件与 Allure Commandline,在构建后生成并发布报告
- HTML 报告:使用 HTML Publisher 归档并展示(注意 CSP 配置以正常显示)
- 通知与质量门禁
- Email Extension 或企业 IM 插件发送失败告警;设置“健康报告阈值”与“失败即阻断”策略
- 触发与调度
- 支持 Git Webhook 触发、定时构建(如每 5 分钟回归)与 手动触发,满足不同回归频率需求
- 环境与版本管理
- 在 Debian 上可并行安装多版本 JDK,在 Pipeline 中通过 env.JAVA_HOME 切换(如 openjdk-11 与 openjdk-8),满足多项目兼容
- 稳定性建议
- UI 测试使用 Headless 或 Xvnc;为报告与日志设置合适保留策略;失败用例自动重试与不稳定用例标记。