在 Ubuntu 上用 Jenkins 落地自动化测试
一 环境准备与安装
- 安装基础依赖:
- 更新索引并安装 OpenJDK 11、Git、Maven(按项目需要选装 Docker)
- 命令示例:sudo apt update && sudo apt install -y openjdk-11-jdk git maven
- 安装与启动 Jenkins:
- 添加官方仓库并安装:
- wget -q -O - https://pkg.jenkins.io/debian-stable/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 start jenkins && sudo systemctl enable jenkins
- 访问与初始化:
- 浏览器打开 http://<服务器IP>:8080,从 /var/lib/jenkins/secrets/initialAdminPassword 获取初始密码,完成解锁
- 选择安装推荐插件,创建管理员账户,进入管理界面
二 创建任务与流水线
- 方式一 Freestyle 项目(快速上手)
- 新建任务 → 选择 Freestyle project
- 源码管理:选择 Git,填写仓库 URL 与分支
- 构建触发器:按需配置(如轮询 SCM、定时触发)
- 构建步骤:
- Java 项目:Add build step → Invoke top-level Maven targets → 输入 clean test
- 其他语言:Add build step → Execute shell → 执行测试命令
- 构建后操作:
- 选择 Publish JUnit test result report,设置测试报告 XML 路径(如 target/surefire-reports/*.xml)
- 方式二 Pipeline(推荐,便于版本化与复用)
- 新建任务 → 选择 Pipeline
- 在 Pipeline 配置中填入或指向仓库根目录的 Jenkinsfile
- 示例 Jenkinsfile(多语言通用思路):
pipeline {
agent any
stages {
stage(‘Checkout’) { steps { git url: ‘https://github.com/your/repo.git’, branch: ‘main’ } }
stage(‘Build’) { steps { sh ‘mvn -B -DskipTests clean package’ } }
stage(‘Test’) {
steps { sh ‘mvn test’ }
post { always { junit ‘**/target/surefire-reports/*.xml’ } }
}
}
}
- 触发与查看:保存后点击 Build Now,在构建历史与控制台输出中查看结果
三 常见测试类型与集成要点
- Java 单元/集成测试
- 使用 JUnit/TestNG,Maven 执行 mvn test,通过 JUnit 插件收集报告
- Python 自动化测试
- 建议使用 venv 隔离依赖:python3 -m venv env && source env/bin/activate && pip install -r requirements.txt
- 执行测试并产出 JUnit XML:pytest tests/ --junit-xml=test-results.xml
- 在构建后操作中添加 Publish JUnit test result report,路径指向 test-results.xml
- API 自动化测试
- 使用 Postman Collection + Newman 执行:newman run collection.json -r junit --reporter-junit-export api-report.xml
- 同样通过 JUnit 插件归档报告
- Web UI 自动化测试
- 使用 Selenium(配合 TestNG/JUnit),Maven/Gradle 运行测试
- 可结合 Allure 生成可视化报告(安装 Allure 插件并在 post 阶段归档结果目录)
- 质量与报告
- 常用插件:JUnit(测试报告)、Allure(可视化报告)、Maven Integration(Java 构建)、NodeJS(前端/Node 项目)
- 报告统一归档与趋势分析,便于质量门禁与回溯
四 触发策略与质量门禁
- 触发策略
- 代码变更触发:在 GitHub/GitLab Webhook 中配置事件(如 push、PR)回调 Jenkins
- 定时触发:在任务配置中使用 Poll SCM(如 H/5 * * * * 表示每 5 分钟检查一次变更)
- 质量门禁与稳定性
- 使用 JUnit 报告判定失败(构建不稳定/失败),必要时阻断合并
- 失败重试与通知:在 Pipeline 中加入 retry 逻辑,结合邮件/企业微信/钉钉等通知
- 质量平台联动:与 SonarQube 集成做静态检查与质量阈值门禁
五 安全与运维要点
- 安全加固
- 启用 CSRF 保护、全局安全与基于项目/角色的授权策略
- 建议配置 HTTPS/SSL 证书,保护凭据与传输安全
- 系统与网络
- 如启用防火墙,放行 8080 端口:sudo ufw allow 8080
- 定期备份 JENKINS_HOME,并妥善管理凭据与密钥
- 环境隔离与扩展
- 使用 Docker 构建/测试,提升一致性与可移植性
- 通过 Agent 节点扩展执行能力,支持分布式测试与多环境并行