温馨提示×

Linux下Jenkins如何测试

小樊
44
2025-12-04 09:00:31
栏目: 智能运维

Linux下Jenkins测试实操指南

一 环境准备与安装

  • 安装 Java(推荐 OpenJDK 11JDK 8),并配置环境变量(如 JAVA_HOME)。
  • 安装并启动 Jenkins
    • Debian/Ubuntu 示例:
      • 添加仓库与密钥,执行:sudo apt update && sudo apt install jenkins,随后 sudo systemctl enable --now jenkins
      • 首次访问 http://服务器IP:8080,解锁密码在 /var/lib/jenkins/secrets/initialAdminPassword
    • CentOS/RHEL 示例:
      • 导入仓库与密钥,执行:sudo yum install jenkins,随后 sudo systemctl enable --now jenkins
  • 登录 Web 管理端,安装常用插件:Pipeline、Git、JUnit、HTML Publisher、Maven Integration、Performance Plugin、Credentials Binding 等,用于后续测试与报告展示。

二 测试类型与示例流水线

  • 下表给出常见测试类型在 Linux + Jenkins 的落地方式与关键配置:
测试类型 前置与环境 关键命令或插件 报告与归档
单元测试(Java + Maven) 安装 Maven,项目遵循 Maven 结构 mvn test JUnit 报告(target/surefire-reports/*.xml),使用 “Publish JUnit test result report” 归档
接口/性能(JMeter) 安装 JMeter 并配置 JMETER_HOME jmeter -n -t script.jmx -l result.jtl -j run.log 使用 Performance Plugin 展示聚合报告;或用 HTML Publisher 发布 HTML 报告
UI 自动化(Selenium + Allure) 安装 pytestAllure 命令行 pytest … --alluredir=allure_results Allure 报告(需配置 Allure Commandline 工具路径)
  • 示例一 接口/性能测试 Pipeline(JMeter)
pipeline {
  agent any
  environment {
    JMETER_HOME = '/opt/jmeter/apache-jmeter-5.4.3'
    PATH = "${JMETER_HOME}/bin:${env.PATH}"
  }
  stages {
    stage('Checkout') { steps { git 'https://github.com/example/perf-test.git' } }
    stage('Run JMeter') {
      steps {
        sh 'jmeter -n -t ${WORKSPACE}/script/test.jmx -l ${WORKSPACE}/result.jtl -j ${WORKSPACE}/run.log'
      }
    }
  }
  post {
    always {
      junit '**/result.jtl'                     // 若脚本生成JUnit兼容XML
      publishHTML(target: [reportDir: '**/html', reportFiles: 'index.html', reportName: 'JMeter HTML Report'])
      perfReport '**/result.jtl'                // Performance Plugin
    }
  }
}
  • 示例二 UI 自动化 Pipeline(pytest + Allure)
pipeline {
  agent any
  tools { nodejs 'node-18' } // 如用npm/webdriver-manager
  stages {
    stage('Checkout') { steps { git 'https://github.com/example/ui-test.git' } }
    stage('Install deps') { steps { sh 'pip install -r requirements.txt' } }
    stage('Run UI Tests') {
      steps { sh 'pytest tests/ --alluredir=allure_results --clean-alluredir' }
    }
  }
  post {
    always { allure includeProperties: false, jdk: '', results: [[path: 'allure_results']] }
  }
}
  • 说明:JMeter 非 GUI 运行使用 -n 参数;JUnit 报告路径需与构建工具输出一致;Allure 需在 Manage Jenkins → Global Tool Configuration 配置 Allure Commandline 安装路径。

三 触发与报告查看

  • 触发方式
    • 源码变更触发:在任务配置选择 “Build when a change is pushed to GitLab/GitHub”,在代码托管平台配置 Webhook(如 GitLab 需生成 Secret Token 并在 Jenkins 任务中填写)。
    • 定时触发:使用 Cron 表达式(如 H/5 * * * * 表示每 5 分钟)实现定时回归。
  • 报告与质量门禁
    • 单元测试:归档 JUnit XML,配置阈值(如失败即阻断)。
    • 性能测试:使用 Performance Plugin 查看聚合图表、阈值与趋势。
    • UI 测试:使用 Allure Report 展示用例、步骤、附件与趋势。
    • 邮件/IM 通知:安装 Email Extension Plugin 等,在构建后动作中配置收件人与内容模板。

四 常见问题与排查

  • Java 环境问题:构建日志出现 JAVA_HOME 未定义 等,建议在 Manage Jenkins → Global Tool Configuration 显式配置 JDK,或在节点/任务级设置环境变量。
  • JMeter 报告为空或路径错误:确认 .jmx 路径、-l 结果文件 与归档路径一致;如使用 HTML 报告,确保生成步骤成功且路径匹配。
  • HTML 报告样式丢失:在 Jenkins 管理 → 脚本控制台 执行 System.setProperty(“hudson.model.DirectoryBrowserSupport.CSP”, “”),临时放宽 CSP(仅测试环境)。
  • 权限与凭据:Git 拉取、SSH 部署、测试平台鉴权等,统一使用 Credentials 管理,避免明文。
  • 分布式压测:JMeter 分布式由 主控机协调,常见做法是将 Jenkins 与主控机 部署在同一台 Linux 服务器以简化网络与权限配置。

0