IntelliJ Maven运行含Ultimate thread group的JMeter jmx文件报ConversionException
该报错本质是JMeter运行时类加载不匹配、插件依赖配置错误或脚本与核心版本不兼容导致的,按照以下步骤修改配置即可解决:
修正pom中JMeter插件的依赖配置
你此前大概率是把custom thread group依赖放在了项目全局
<dependencies>节点下,该路径下的依赖不会被jmeter-maven-plugin加载到JMeter运行时环境,必须放在插件内部的<jmeterExtensions>节点下。同时注意3.0版本之后的Ultimate Thread Group对应的artifactId为jmeter-plugins-casutg,旧的jmeter-plugins-ctg已经废弃,会存在类缺失问题。
参考正确配置:<plugin> <groupId>com.lazerycode.jmeter</groupId> <artifactId>jmeter-maven-plugin</artifactId> <version>3.8.0</version> <executions> <execution> <id>jmeter-tests</id> <goals> <goal>jmeter</goal> </goals> </execution> </executions> <configuration> <jmeterExtensions> <dependency> <groupId>kg.apc</groupId> <artifactId>jmeter-plugins-casutg</artifactId> <version>2.10</version> </dependency> </jmeterExtensions> <!-- 排除冲突的公共依赖,避免类加载重复 --> <excludedArtifacts> <exclusion>kg.apc:jmeter-plugins-cmn-jmeter</exclusion> </excludedArtifacts> </configuration> </plugin>对齐脚本与JMeter核心版本
如果你是在桌面端JMeter生成的jmx脚本,需确保桌面端JMeter版本与jmeter-maven-plugin对应的JMeter核心版本完全一致,版本差异会导致脚本序列化的ListedHashTree结构不兼容,触发转换异常。版本不匹配时直接用对应版本的桌面JMeter重新打开脚本保存即可。清理缓存重新执行
运行命令mvn clean清空历史构建缓存后再执行测试命令,避免旧依赖残留导致的类加载异常。(可选)添加版本兼容跳过配置
如果仍存在报错,在插件的<configuration>节点下增加<ignoreVersionMismatch>true</ignoreVersionMismatch>,强制跳过脚本与核心的版本校验。
内容的提问来源于stack exchange,提问作者user14625441

