JMeter5.4.1自定义Jar包放入lib/ext目录后无法识别如何排查
JMeter自定义Java请求类找不到问题解决方案
- 依赖配置冲突
你当前的JMeter依赖未指定provided作用域,打包时会将JMeter核心类一并打入Jar包,和JMeter本身lib目录下的同名类冲突,导致扩展类加载失败。
修改pom.xml依赖配置,添加scope标签:<dependencies> <!-- https://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMeter_java --> <dependency> <groupId>org.apache.jmeter</groupId> <artifactId>ApacheJMeter_java</artifactId> <version>5.4.1</version> <scope>provided</scope> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMeter_core --> <dependency> <groupId>org.apache.jmeter</groupId> <artifactId>ApacheJMeter_core</artifactId> <version>5.4.1</version> <scope>provided</scope> </dependency> </dependencies> - Jar包内容缺失
执行以下命令验证你的Jar包是否包含目标类:
输出结果中必须存在jar tf /Users/alex/Documents/IntelliJ/jmeter-util/target/jmeter-util-1.0-SNAPSHOT.jarjmeter/testing/ClassTester.class,如果缺失则检查Maven项目结构:Java源码需放在src/main/java/jmeter/testing/路径下,确认后重新执行mvn clean package打包。 - JDK版本不兼容
如果你用高于JDK8的版本编译类,而brew安装的JMeter默认使用JDK8运行,高版本字节码无法被低版本JDK加载,会导致类识别失败。可执行java -version和jmeter --version核对两者的JDK版本,保持一致即可。 - JMeter加载异常
- 启动JMeter后打开
选项 > 日志查看,检查启动日志中是否有加载你的Jar包的报错信息,根据报错调整配置 - 确认重启JMeter前已完全关闭原有进程,macOS下可执行
ps aux | grep jmeter查询残余进程,执行kill <进程号>杀掉后再重启JMeter - 若仍无法识别,可修改jmeter.properties配置文件中的
search_paths参数,直接指定你Jar包所在的目录,重启后即可生效。
- 启动JMeter后打开
内容的提问来源于stack exchange,提问作者Zhang
相关产品推荐
相关产品推荐

