Jenkins如何在Ubuntu上实现自动化测试
导读:在 Ubuntu 上使用 Jenkins 搭建自动化测试流水线 一 环境准备与安装 安装 Java 11(Jenkins 运行依赖):sudo apt update && sudo apt install -y openj...
在 Ubuntu 上使用 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 [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/” | sudo tee /etc/apt/sources.list.d/jenkins.list > /devref
sudo apt update & & sudo apt install -y jenkins - 启动与开机自启:sudo systemctl start jenkins & & sudo systemctl enable jenkins
- 访问与初始化:浏览器打开 http://< 服务器IP> :8080,解锁管理员(初始密码:sudo cat /var/lib/jenkins/secrets/initialAdminPassword),按向导安装推荐插件并创建管理员。
- 防火墙放行端口(如使用 UFW):sudo ufw allow 8080;如需修改端口,编辑 /usr/lib/systemd/system/jenkins.service 中的 Environment=“JENKINS_PORT=8080”,改为如 8088,然后执行 sudo systemctl daemon-reload & & sudo systemctl restart jenkins。
二 创建任务与流水线
- 新建任务:选择 Pipeline(推荐)或 Freestyle project。
- 源码管理:配置 Git 仓库 URL 与凭据。
- 构建触发器:按需勾选 轮询 SCM(如 H/5 * * * * 每5分钟)或配置 GitLab/GitHub Webhook 实现代码推送即触发。
- 构建步骤:
- Freestyle:添加 “Execute shell”,写入测试命令(如 mvn test、pytest)。
- Pipeline:在 Jenkinsfile 中定义 stages/steps(见下文示例)。
- 构建后操作:
- 单元测试报告:添加 Publish JUnit test result report,指定 XML 结果路径(如 target/surefire-reports/*.xml 或 test-results.xml)。
- 可视化报告:安装 Allure 插件,在 post 阶段使用 allure 命令收集结果(如 target/allure-results)。
三 典型测试场景与命令示例
- Python + pytest(含覆盖率与报告)
- 安装依赖:pip install pytest pytest-cov
- 运行测试:pytest tests/ --junit-xml=test-results.xml --cov=your_pkg --cov-report=xml:coverage.xml
- Jenkins 配置:构建步骤执行上述命令;构建后添加 “Publish JUnit test result report”(test-results.xml)与 Allure 报告(coverage.xml 与 allure-results 按需)。
- Java + Maven + JUnit
- 运行测试:mvn test
- 报告路径:target/surefire-reports/*.xml;Jenkins 添加 “Publish JUnit test result report” 指向该目录。
- API 测试(Postman + Newman)
- 运行测试:newman run collection.json --reporters junit,html
- 报告:JUnit 结果 XML 由 Jenkins 收集展示。
- 性能测试(JMeter)
- 运行测试:jmeter -n -t test.jmx -l result.jtl
- 说明:可结合插件或脚本将结果归档、对比趋势。
四 报告、通知与质量门禁
- 报告可视化:安装 Allure Jenkins Plugin,在 Pipeline 的 post 阶段使用 allure includeProperties: false, jdk: ‘’, results: [[path: ‘target/allure-results’]] 生成可视化报告;JUnit 报告用于趋势与用例级结果。
- 质量门禁:在 Jenkins 中配置 “Unstable/Failed 条件”(如测试失败即标记不稳定),配合 SonarQube 做静态扫描与质量阈值门禁,未达标则阻断后续阶段。
- 通知告警:安装 Email Extension 插件,构建后根据结果发送邮件/企业微信/Slack 通知,及时反馈失败与回归状态。
五 稳定运行与扩展建议
- 环境隔离:使用 Docker 在 Pipeline 中启动数据库、浏览器等依赖,减少“本机环境不一致”导致的 flaky 测试;示例 agent { docker { image ‘python:3.11-slim’ } } 。
- 并行与分布式:通过 Jenkins Agent 节点 并行执行多套测试(如多浏览器/多数据集),显著缩短回归时间。
- 稳定性增强:为关键阶段添加 retry 逻辑,失败自动重试;对偶发性 UI/API 测试尤为有效。
- 代码化管理:始终使用 Jenkinsfile 管理流水线,纳入版本控制,便于审计、回滚与复用。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Jenkins如何在Ubuntu上实现自动化测试
本文地址: https://pptw.com/jishu/766433.html
