温馨提示×

Jenkins与Ubuntu如何实现自动化测试

小樊
47
2025-11-14 20:06:18
栏目: 智能运维

在 Ubuntu 上用 Jenkins 落地自动化测试

一 环境准备与安装

  • 安装基础依赖:
    • 更新索引并安装 OpenJDK 11GitMaven(按项目需要选装 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 节点扩展执行能力,支持分布式测试与多环境并行

0