首页主机资讯Jenkins自动化测试在Debian上如何进行

Jenkins自动化测试在Debian上如何进行

时间2026-01-22 04:17:03发布访客分类主机资讯浏览1298
导读:在 Debian 上搭建 Jenkins 自动化测试环境 一 环境准备与安装 安装 Java 11(Jenkins 常用版本为 Java 8/11): 执行:sudo apt update && sudo apt ins...

在 Debian 上搭建 Jenkins 自动化测试环境

一 环境准备与安装

  • 安装 Java 11(Jenkins 常用版本为 Java 8/11):
    • 执行:sudo apt update & & sudo apt install -y openjdk-11-jdk
    • 验证:java -version
  • 导入 Jenkins 仓库密钥与源(新版 Debian 建议使用签名方式):
    • 执行:
      curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc >
           /dev/null
      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 enable --now jenkins
    • 查看状态:sudo systemctl status jenkins
  • 访问与解锁:
    • 浏览器打开:http://< 服务器IP> :8080
    • 初始管理员密码:sudo cat /var/lib/jenkins/secrets/initialAdminPassword
    • 按向导完成插件安装与管理员设置。

二 插件与全局工具配置

  • 常用插件(按需安装):
    • GitPipelineMaven Integration(Java/Maven 项目)、NodeJS(前端/Node 项目)、Selenium(UI 自动化)、HTML Publisher(HTML 报告)、Email Extension(邮件通知)、Allure(高级测试报告)、GitLab/GitHub Integration(代码托管集成)。
    • 命令行安装示例:sudo jenkins-plugin-cli --plugins gitlab-plugin selenium-plugin htmlpublisher pipeline-plugin
  • 全局工具(Manage Jenkins → Global Tool Configuration):
    • 配置 JDK 11(若系统已装可自动检测)。
    • 配置 Maven(Name: Maven,自动安装或指定 MAVEN_HOME)。
    • 配置 NodeJS(Name: NodeJS,选择所需版本)。
    • 配置 Allure Commandline(Name: allure,指定安装目录或自动安装)。

三 创建任务与流水线示例

  • Freestyle 任务(适合快速接入)
    • 源码管理:选择 Git,填写仓库 URL 与分支。
    • 构建触发器:可选 轮询 SCM(如 H/5 * * * * 每 5 分钟)或 Webhook(与 GitLab/GitHub 集成)。
    • 构建环境:勾选 Provide Node & npm(Node 项目)。
    • 构建步骤:
      • Maven:mvn clean test
      • Node:npm install & & npm test -- --ci
      • Python:pip install -r requirements.txt & & python -m pytest tests/ --junitxml=results/pytest.xml
    • 构建后操作:
      • 归档构件:**/target/*.jar**/dist/*.zip
      • 测试报告:JUnit**/results/*.xml
      • HTML 报告:HTML Publisher(目录与索引页)
      • 邮件通知:Editable Email Notification(可结合 emailext
  • Pipeline 任务(推荐,可版本化管理)
    • 方式一:在 Job 配置中选择 Pipeline script,直接粘贴脚本。
    • 方式二:Pipeline script from SCM(从 Git 仓库加载 Jenkinsfile,便于团队协作)。
    • 示例 Jenkinsfile(多语言 UI 测试 + 报告聚合):
      pipeline {
      
        agent {
       label 'dism-test-node' }
      
        environment {
      
          LANGS = 'zh-Hans,en,ja,de,fr,es'
          GIT_REPO = 'https://gitcode.com/gh_mirrors/di/Dism-Multi-language'
        }
      
        stages {
      
          stage('拉取代码') {
      
            steps {
       git url: env.GIT_REPO, branch: 'main' }
      
          }
      
          stage('依赖安装') {
      
            steps {
      
              sh 'nuget restore Languages.sln'
              sh 'pip install -r requirements.txt'
            }
      
          }
      
          stage('多语言测试') {
      
            parallel {
      
              stage('UI测试') {
      
                steps {
      
                  script {
      
                    def langs = env.LANGS.split(',')
                    langs.each {
           lang ->
      
                      sh "pytest tests/ui_test.py --lang=${
      lang}
       --junitxml=results/ui_${
      lang}
      .xml"
                    }
      
                  }
      
                }
      
              }
      
              stage('字符串验证') {
      
                steps {
      
                  sh 'python scripts/validate_translations.py --input-dir=Languages --output=results/translation_checks.xml'
                }
      
              }
      
            }
      
          }
      
          stage('测试报告生成') {
      
            steps {
      
              script {
      
                def allReports = findFiles(glob: 'results/*.xml')
                allReports.each {
           report ->
      
                  junit allowEmptyResults: true, testResults: report.path
                }
      
                publishHTML(target: [
                  allowMissing: false,
                  alwaysLinkToLastBuild: false,
                  keepAll: true,
                  reportDir: 'results/html',
                  reportFiles: 'index.html',
                  reportName: '测试报告'
                ])
              }
      
            }
      
          }
      
        }
      
        post {
      
          success {
      
            slackSend channel: '#dism-ci', message: '✅ Dism-Multi-language测试通过'
          }
      
          failure {
      
            slackSend channel: '#dism-ci', message: '❌ Dism-Multi-language测试失败'
            sh 'curl -d "status=failed" https://api.example.com/notify'
          }
      
        }
      
      }
          
      
    • 说明:上述示例展示了 并行阶段JUnit 报告聚合HTML 报告发布通知,可按项目替换命令与路径。

四 触发策略与通知

  • 触发策略
    • SCM 轮询:简单可靠,适合无公网或 Webhook 受限环境(如 H/5 * * * *)。
    • Webhook:提交即触发,效率高;需在 GitLab/GitHub 配置 Jenkins 服务 Hook,并在 Jenkins 安装对应集成插件。
  • 通知与质量门禁
    • 邮件通知:使用 Email Extension 定制主题与内容,结合构建状态(成功/失败/不稳定)发送。
    • 即时通信:如 Slack 通知(需相应插件与 Webhook)。
    • 质量门禁:在 Job 配置中勾选 “构建失败条件”(如测试失败、覆盖率下降、构建不稳定)阻止后续阶段或部署。

五 运行与排错要点

  • 访问与端口
    • 默认端口 8080;如启用 UFWsudo ufw allow 8080
    • 如端口冲突,编辑 /lib/systemd/system/jenkins.service 中的 Environment="JENKINS_PORT=8081",然后 sudo systemctl daemon-reload & & sudo systemctl restart jenkins
  • 权限与凭据
    • Git 配置 SSH 私钥Personal Access Token;在 Job 的 Credentials 中选择。
    • 避免在代码中明文存放密钥,使用 Jenkins 凭据存储
  • 常见故障
    • JAVA_HOME 未定义:在 Global Tool Configuration 显式配置 JDK,或在节点/Job 环境变量中设置。
    • 测试报告为空:确认测试框架输出 JUnit XML 路径与 Jenkins 报告路径一致;必要时在构建步骤中打印 ls results/ 调试。
    • 插件安装慢/失败:更换 更新站点镜像,或离线安装 .hpi 插件包。
    • UI 测试不稳定:使用 Selenium Grid 或容器化 Agent,固定浏览器版本,设置显式等待,减少并发冲突。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Jenkins自动化测试在Debian上如何进行
本文地址: https://pptw.com/jishu/789526.html
ubuntu如何远程管理文件 debian虚拟机安全防护措施

游客 回复需填写必要信息