Apache JMeter 使用记录踩坑
在使用Apache JMeter进行压测时,昨天还正常的测试计划今天再次执行却报错了:
Uncaught Exception java.lang.NoSuchMethodError: org.apache.commons.io.IOUtils.closeQuietly(Ljava/io/Closeable;Ljava/util/function/Consumer;)V in thread Thread[线程组 1-4,6,main]. See log file for details.
我仔细对比了昨天与今天的环境变化,因为在使用本地去做Java堆栈分析时,jstack -heap xxx 命令提示无法使用,于是将jdk版本设置回了1.8,这样才保证了可以使用前文命令。那排查的思路就有了,于是再次将jdk版本设为22,重新打开Apache JMeter,再次执行压测发现问题消失了。后续查了一下资料,我用的版本是Apache JMeter 5.6.3,官网显示:
JMeter 5.6.x requires Java 8 or later for execution (Java 17 or later recommended).The next major release would require Java 17 or later.
但是这个Java 8 应该是后面的版本,我的是1.8.0_171,并不支持。
所以如果在使用Apache JMeter时
遇到相同类型的报错信息,可以试着先更换一下本地jdk版本(更改一下JAVA_HOME环境变量的值),再尝试进行测试。