JMeter UltimateThreadGroup导致Jenkins流水线执行失败的解决求助
解决JMeter UltimateThreadGroup依赖与BOM找不到的问题
问题根源
CannotResolveClassException: kg.apc.jmeter.threads.UltimateThreadGroup:测试计划使用的Ultimate Thread Group(casutg)插件未在Gradle依赖中声明,导致JMeter无法加载该类。- 找不到
org.apache.jmeter:bom:5.4.1:JMeter 5.4.1版本并未发布对应的BOM(物料清单)到Maven中央仓库,因此无法通过BOM方式引入依赖。
解决步骤
1. 修正Gradle配置
移除无效的BOM依赖,直接声明JMeter核心组件与casutg插件的依赖,示例build.gradle配置如下:
plugins { id 'java' id 'jmeter' version '3.4.0' // 选择与JMeter 5.4.1兼容的插件版本 } repositories { mavenCentral() // 部分JMeter插件可能需要从归档的jcenter获取,可添加此仓库 maven { url 'https://repo.jfrog.org/artifactory/jcenter/' } } dependencies { // 直接引入JMeter核心模块,替代BOM jmeter 'org.apache.jmeter:jmeter-core:5.4.1' jmeter 'org.apache.jmeter:jmeter-http:5.4.1' jmeter 'org.apache.jmeter:jmeter-java:5.4.1' // 添加casutg插件依赖(版本2.1.0适配JMeter 5.0-5.4.x) jmeter 'kg.apc:jmeter-plugins-casutg:2.1.0' // 可选:添加JMeter插件管理器,方便后续扩展其他插件 jmeter 'kg.apc:jmeter-plugins-manager:1.6' } jmeter { jmeterVersion = '5.4.1' // 启用HTML与XML报告生成 reports { html.enabled = true xml.enabled = true } }
2. 调整Jenkins流水线阶段
确保流水线调用正确的Gradle任务执行JMeter测试,并配置报告发布:
stage('Run JMeter Tests') { steps { script { sh './gradlew jmeterRun' // 执行JMeter测试任务 } } post { always { // 发布JUnit格式的测试结果 junit 'build/reports/jmeter/*.xml' // 发布HTML测试报告 publishHTML(target: [ allowMissing: false, keepAll: true, reportDir: 'build/reports/jmeter/html', reportFiles: 'index.html', reportName: 'JMeter Performance Test Report' ]) } } }
3. 验证依赖兼容性
- casutg 2.1.0版本仅支持JMeter 5.0至5.4.x版本,请勿混用更高版本的JMeter。
- 若仍存在依赖拉取问题,可检查仓库配置,确保能访问Maven中央仓库或jcenter归档仓库。
内容的提问来源于stack exchange,提问作者Fábio Pires
相关产品推荐
相关产品推荐

