Jmeter-java请求执行报错:java.lang.NoSuchFieldError: INSTANCE

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jmeter-java请求执行报错:java.lang.NoSuchFieldError: INSTANCE相关的知识,希望对你有一定的参考价值。

本次测试背景:

1.使用jmeter压力测试Java接口,开发提供了一个jar,并且提供了依赖jar包

 

2.写完测试类后打包成jar,放入D:\software\apache-jmeter-2.13\lib\ext

 

3.可以正常启动jmeter.当执行用例时,错误出现了

 

报错截图:

技术分享

 

 

如果大家遇到上面截图这个问题,不要慌张,慢慢排查问题

出现这个问题的原因,多半是因为某些jar重复了。



解决方案:

1.判断你要测试的jar包中是否有和jmeter一样的jar,根据我的测试,发现确实有两个jar相同

在我写的测试类中,引用的lib里

技术分享

 

在jmeter(X:\XXXX\apache-jmeter-2.13\lib)里

技术分享

 

可以看到,我的测试类里引用是4.4.1,但官网提供最新的jmeter的lib里还是4.2.X,所以我们将最新的jar(4.4.1),替换到X:\XXXX\apache-jmeter-2.13\lib下,使jmeter也拥有了新版本,这样问题就解决了。

总结:遇到以上问题,1.核对是否有重复jar   2.版本号是否一致

 

画外音:在此之前,开发提供给我的jar的版本号是4.2,没有发生此问题,因为Jmeter里的这两个Jar版本要高于开发提供的,所以jmeter默认使用了自己的;

当Jmeter里的这两个Jar版本低于开发提供的版本时,问题就暴露了。这也体现了java特性:向下兼容



以上是关于Jmeter-java请求执行报错:java.lang.NoSuchFieldError: INSTANCE的主要内容,如果未能解决你的问题,请参考以下文章

JMeter-java.lang.OutOfMemoryError: PermGen space错误

请求一个方法,后台能正常执行,前台报错404

页面报错

TomcatJPS中常见的tomcat报错错误分析

nginx报错504

loadrunner 执行脚本时 报错http 400