首页主机资讯如何在centos上集成jmeter与CI/CD

如何在centos上集成jmeter与CI/CD

时间2025-12-04 13:49:04发布访客分类主机资讯浏览906
导读:在 CentOS 上将 JMeter 集成到 CI/CD 的落地方案 一 架构与准备 组件选型 版本控制与触发:GitLab/GitHub(Webhook 触发流水线)。 CI/CD 引擎:Jenkins(自建)或 GitLab CI...

在 CentOS 上将 JMeter 集成到 CI/CD 的落地方案


一 架构与准备

  • 组件选型
    • 版本控制与触发:GitLab/GitHub(Webhook 触发流水线)。
    • CI/CD 引擎:Jenkins(自建)或 GitLab CI/GitHub Actions(托管)。
    • 执行环境:CentOS 7/8 代理节点(可容器化),预装 Java 8/11JMeter 5.x
  • 安装 JMeter(示例)
    • 安装 OpenJDK 8:sudo yum install -y java-1.8.0-openjdk-devel
    • 下载并解压 JMeter(以 5.4.3 为例):
      • wget https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.3.tgz
      • tar -xzf apache-jmeter-5.4.3.tgz -C /opt/
      • ln -sfn /opt/apache-jmeter-5.4.3 /opt/jmeter
    • 配置环境变量(/etc/profile 或 ~/.bashrc):
      • export JMETER_HOME=/opt/jmeter
      • export PATH=$PATH:$JMETER_HOME/bin
    • 验证:jmeter -v
  • 建议目录结构
    • /opt/jmeter-tests/:存放 .jmx 脚本、数据文件、报告目录
    • /var/lib/jenkins/workspace/…:Jenkins 工作空间(自动拉取代码)
  • 代理与权限
    • 为 Jenkins 代理或运行用户授予对 /opt/jmeter/opt/jmeter-tests 的读写权限
    • 如需远程分布式压测,开放 RMI 1099 端口并配置 server.rmi.localport、remote_hosts 等参数

二 执行引擎选择与示例

  • 方式 A:命令行直跑(最简洁,适合任何 CI)
    • 典型命令
      • jmeter -n -t /opt/jmeter-tests/perf/login.jmx -l /opt/jmeter-tests/results/result.jtl -e -o /opt/jmeter-tests/results/html-report
    • 说明
      • -n 非 GUI;-t 指定脚本;-l 输出 JTL;-e 生成 HTML 报告;-o 指定报告目录(需为空)
      • 可在 CI 中保存 JTL/HTML 为构件,便于归档与对比
  • 方式 B:Ant 批量执行(传统方案,便于生成 HTML 报告)
    • 安装 Ant:sudo yum install -y ant
    • 将 JMeter extras 中的 ant-jmeter-1.1.1.jar 复制到 $ANT_HOME/lib
    • 在 JMeter 的 extras 目录可找到 build.xml 示例,按需修改 jmeter.home、test.jmx、result.jtl、result.html 路径
    • 运行:cd /ant & & ant
    • 报告样式可通过替换 jmeter-results-detail-report_21.xsl 或自定义 XSL 实现
  • 方式 C:Maven 插件执行(适合 Java 项目一体化)
    • 在 pom.xml 中引入 jmeter-maven-plugin,配置 、、 等
    • 运行:mvn verify(或 mvn jmeter:gui 本地调试)
    • 报告默认生成在 target/jmeter/,可结合 maven-resources-plugin 拷贝归档
  • 方式 D:容器化执行(环境一致性最佳)
    • 示例(在 CI 中使用官方镜像运行 JMeter,挂载脚本与结果目录):
      • docker run --rm -v /opt/jmeter-tests:/tests justb4/jmeter:5.4.3 -n -t /tests/login.jmx -l /tests/results.jtl -e -o /tests/report

三 在 CI/CD 平台中的落地示例

  • Jenkins 流水线(声明式)
    • 关键步骤
      • 拉取代码(Git)
      • 安装 Java 与 JMeter(或使用已预装代理)
      • 执行 JMeter(命令行或 Ant/Maven)
      • 归档 JTL/HTML 报告,发布到 HTML PublisherPerformance Plugin
      • 阈值门禁(如 95th 响应时间 < 2s、错误率 < 1%)
    • 示例 Jenkinsfile(片段)
      • pipeline { agent { label ‘centos-jmeter’ } tools { jdk ‘openjdk8’ } stages { stage(‘Checkout’) { steps { git url: ‘git@gitlab.com:xxx/perf-tests.git’, branch: ‘main’ } } stage(‘Run JMeter’) { steps { sh ‘’’ mkdir -p results /opt/jmeter/bin/jmeter -n -t tests/login.jmx -l results/result.jtl -e -o results/html-report ‘’’ } } stage(‘Archive & Report’) { steps { archiveArtifacts artifacts: ‘results/**’, fingerprint: true publishHTML(target: [reportDir: ‘results/html-report’, reportFiles: ‘index.html’, reportName: ‘JMeter Report’]) } } stage(‘Threshold Gate’) { steps { script { def summary = readFile ‘results/html-report/summary.json’ // 需配合 JMeter 插件导出 // 解析并判断阈值,失败则 currentBuild.result = ‘FAILURE’ } } } } }
    • 插件建议:Git、HTML Publisher、Performance Plugin、Warnings NG
  • GitLab CI 示例(.gitlab-ci.yml)
    • 示例
      • stages: [test] jmeter: image: justb4/jmeter:5.4.3 stage: test script: - mkdir -p results - jmeter -n -t tests/login.jmx -l results/result.jtl -e -o results/html-report artifacts: paths: [results/] when: always only: - main
  • GitHub Actions 示例(.github/workflows/perf.yml)
    • 示例
      • name: JMeter Performance Test on: [push] jobs: perf: runs-on: ubuntu-latest container: justb4/jmeter:5.4.3 steps: - uses: actions/checkout@v4 - name: Run JMeter run: | mkdir -p results jmeter -n -t tests/login.jmx -l results/result.jtl -e -o results/html-report - name: Upload Report uses: actions/upload-artifact@v4 with: path: results/

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


若转载请注明出处: 如何在centos上集成jmeter与CI/CD
本文地址: https://pptw.com/jishu/763501.html
jmeter在centos上的故障排查 centos上jmeter资源如何分配

游客 回复需填写必要信息