You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins流水线执行JMeter测试时遇org.apache.jmeter:bom:5.4.1依赖缺失问题

问题描述

我有一个Jenkinsfile流水线,其中一个阶段用于运行JMeter测试并生成对应报告,该阶段代码如下:

stage('Run Non-Functional tests - Windows'){
    when { expression { env.OS == 'BAT' }}
    steps {                
        dir('') {
            bat 'gradlew.bat jmReport'
        }
    }
}

对应的build.gradle配置如下:

import de.qualersoft.jmeter.gradleplugin.task.*

dependencies {
  jmeterPlugin("kg.apc:jmeter-plugins-casutg:2.10") 
} 

plugins {
    id "de.qualersoft.jmeter" version "2.1.0"
}

tasks.register('jmRun',JMeterRunTask) {
    jmxFile.set("TestPlan.jmx")
}

tasks.register("jmReport",JMeterReportTask) {
    jmxFile.set("TestPlan.jmx")
    dependsOn("jmRun")
    deleteResults=true
}

执行该流水线时触发错误:

Execution failed for task ':jmRun'.
> Could not resolve all dependencies for configuration ':jmeterPlugin'.
   > Could not find org.apache.jmeter:bom:5.4.1.
     Required by:
         project :
   > Could not find org.apache.jmeter:bom:5.4.1.
     Required by:
         project : > org.apache.jmeter:ApacheJMeter_core:5.4.1
         project : > org.apache.jmeter:ApacheJMeter_core:5.4.1 > org.apache.jmeter:jorphan:5.4.1

请问该问题产生的原因是什么?是否属于JMeter的Bug?


解答

原因

  • de.qualersoft.jmeter插件2.1.0版本默认依赖JMeter 5.4.1,但Apache JMeter从5.5版本才开始发布BOM(物料清单)文件,5.4.1版本根本没有对应的org.apache.jmeter:bom:5.4.1包,导致Gradle无法解析该依赖。
  • 插件的依赖配置逻辑存在缺陷:在引用低于5.5的JMeter版本时,错误地尝试引入仅在高版本才存在的BOM,触发依赖解析失败。

是否是JMeter的Bug?

不是JMeter本身的Bug。JMeter 5.4.1未提供BOM是该版本的特性限制,问题根源在于你使用的de.qualersoft.jmeter插件版本对JMeter旧版本的兼容性处理不足。

修复方案

有两种可行解决路径:

  1. 升级插件版本:将de.qualersoft.jmeter插件升级到支持JMeter 5.5+的版本(如最新稳定版),插件会自动适配使用JMeter 5.5及以上版本的BOM,避免依赖缺失问题。
  2. 指定兼容的JMeter版本并调整配置:若需保留JMeter 5.4.1,需在build.gradle中显式指定JMeter版本,并禁用插件的BOM自动引入逻辑,或者改用不依赖BOM的插件配置方式。

内容的提问来源于stack exchange,提问作者Fábio Pires

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 21:45:39