JMeter 4.0使用AMF代理服务器录制失败求助
解决JMeter 4.0中AMF代理录制的NoClassDefFoundError问题
这问题我之前帮好几个朋友排查过,核心原因就是你安装的AMF插件版本和JMeter 4.0不兼容,导致找不到HTTPSampler2这个类。
问题根源
JMeter在从3.x升级到4.x的过程中,对HTTP采样器的类结构做了调整——HTTPSampler2这个类被移除或者重命名了,但你下载的AMF插件还是基于老版本JMeter的依赖编写的,自然会触发类找不到的错误,进而导致代理录制失效、网页加载失败。
分步解决方案
- 先清理旧插件:打开JMeter安装目录下的
lib/ext文件夹,把所有和AMF相关的jar包(比如命名带amf、jmeter-amf-plugin的文件)全部删除,避免新旧插件冲突。 - 下载适配版本的AMF插件:一定要找明确标注支持JMeter 4.0的AMF插件版本,别再用针对JMeter 3.x或更早版本的插件了。
- 重新安装并验证:把下载好的适配版jar包放到
lib/ext目录,然后完全重启JMeter。启动后先看控制台日志,如果没有出现类缺失的报错,再尝试启动AMF代理进行录制。
额外小提示
如果实在找不到官方适配的4.0版本插件,还有两个备选方案:
- 尝试自行编译AMF插件的最新源码(如果源码仓库已经更新了对JMeter 4.x的依赖适配);
- 临时降级JMeter到3.x版本(不过这是下策,毕竟4.0有不少功能升级)。
另外,录制前一定要确认浏览器的代理设置已经正确指向JMeter的代理端口,不然也会出现网页加载失败的情况哦。
内容的提问来源于stack exchange,提问作者Krish
相关产品推荐
相关产品推荐

