Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jmeter无法正确使用Junit(无法初始化类org.apache.Jmeter.gui.util.MenuFactory)_Junit_Jmeter_Jmeter Plugins - Fatal编程技术网

Jmeter无法正确使用Junit(无法初始化类org.apache.Jmeter.gui.util.MenuFactory)

Jmeter无法正确使用Junit(无法初始化类org.apache.Jmeter.gui.util.MenuFactory),junit,jmeter,jmeter-plugins,Junit,Jmeter,Jmeter Plugins,我试图使用JMeter进行一些成本测试,但是我的计划是使用我们当前的API单元测试套件作为成本测试计划,因为许多测试都模拟用户流。话虽如此,我在JMeter方面遇到了一些问题。我应该在/lib/junit文件夹中有一个包含单元测试的jar,但是当我启动JMeter时,编辑选项卡在mac上没有任何项目,根据我的研究,这个问题在windows上产生了一个灰色的编辑按钮,我不能右键单击任何对象,junit采样器也没有出现在测试计划中。以下是日志中的数据: 2016/07/08 13:51:33 WAR

我试图使用JMeter进行一些成本测试,但是我的计划是使用我们当前的API单元测试套件作为成本测试计划,因为许多测试都模拟用户流。话虽如此,我在JMeter方面遇到了一些问题。我应该在/lib/junit文件夹中有一个包含单元测试的jar,但是当我启动JMeter时,编辑选项卡在mac上没有任何项目,根据我的研究,这个问题在windows上产生了一个灰色的编辑按钮,我不能右键单击任何对象,junit采样器也没有出现在测试计划中。以下是日志中的数据:

2016/07/08 13:51:33 WARN  - jmeter.gui.util.MenuFactory: Missing jar? Could not create kg.apc.jmeter.config.redis.RedisDataSet. java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool$Config 
2016/07/08 13:51:33 INFO  - jmeter.util.BSFTestElement: Registering JMeter version of JavaScript engine as work-round for BSF-22 
2016/07/08 13:51:33 INFO  - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/html is org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser 
2016/07/08 13:51:33 INFO  - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for application/xhtml+xml is org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser 
2016/07/08 13:51:33 INFO  - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for application/xml is org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser 
2016/07/08 13:51:33 INFO  - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/xml is org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser 
2016/07/08 13:51:33 INFO  - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/vnd.wap.wml is org.apache.jmeter.protocol.http.parser.RegexpHTMLParser 
2016/07/08 13:51:33 INFO  - jmeter.protocol.http.sampler.HTTPSamplerBase: Parser for text/css is org.apache.jmeter.protocol.http.parser.CssParser 
2016/07/08 13:51:33 INFO  - jorphan.exec.KeyToolUtils: keytool found at 'keytool' 
2016/07/08 13:51:33 INFO  - jmeter.protocol.http.proxy.ProxyControl: HTTP(S) Test Script Recorder SSL Proxy will use keys that support embedded 3rd party resources in file /Users/tester/apache-jmeter-3.0/bin/proxyserver.jks 
2016/07/08 13:51:34 WARN  - jmeter.gui.util.MenuFactory: Could not instantiate org.apache.jmeter.protocol.java.control.gui.JUnitTestSamplerGui java.lang.IncompatibleClassChangeError: Implementing class
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at org.apache.jorphan.reflect.ClassFinder.isChildOf(ClassFinder.java:377)
    at org.apache.jorphan.reflect.ClassFinder.access$000(ClassFinder.java:47)
    at org.apache.jorphan.reflect.ClassFinder$ExtendsClassFilter.accept(ClassFinder.java:92)
    at org.apache.jorphan.reflect.ClassFinder.findClassesInOnePath(ClassFinder.java:441)
    at org.apache.jorphan.reflect.ClassFinder.findClasses(ClassFinder.java:289)
    at org.apache.jorphan.reflect.ClassFinder.findClassesThatExtend(ClassFinder.java:264)
    at org.apache.jorphan.reflect.ClassFinder.findClassesThatExtend(ClassFinder.java:196)
    at org.apache.jorphan.reflect.ClassFinder.findClassesThatExtend(ClassFinder.java:178)
    at org.apache.jorphan.reflect.ClassFinder.findClassesThatExtend(ClassFinder.java:140)
    at org.apache.jmeter.protocol.java.control.gui.JUnitTestSamplerGui.setupClasslist(JUnitTestSamplerGui.java:181)
    at org.apache.jmeter.protocol.java.control.gui.JUnitTestSamplerGui.createClassPanel(JUnitTestSamplerGui.java:212)
    at org.apache.jmeter.protocol.java.control.gui.JUnitTestSamplerGui.init(JUnitTestSamplerGui.java:167)
    at org.apache.jmeter.protocol.java.control.gui.JUnitTestSamplerGui.<init>(JUnitTestSamplerGui.java:147)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at java.lang.Class.newInstance(Class.java:442)
    at org.apache.jmeter.gui.util.MenuFactory.initializeMenus(MenuFactory.java:492)
    at org.apache.jmeter.gui.util.MenuFactory.<clinit>(MenuFactory.java:160)
    at org.apache.jmeter.control.gui.TestPlanGui.createPopupMenu(TestPlanGui.java:93)
    at org.apache.jmeter.gui.tree.JMeterTreeNode.createPopupMenu(JMeterTreeNode.java:156)
    at org.apache.jmeter.gui.action.EditCommand.doAction(EditCommand.java:47)
    at org.apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.java:80)
    at org.apache.jmeter.gui.action.ActionRouter.access$000(ActionRouter.java:40)
    at org.apache.jmeter.gui.action.ActionRouter$1.run(ActionRouter.java:62)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

2016/07/08 13:51:34 ERROR - jmeter.gui.util.MenuFactory:  java.lang.IncompatibleClassChangeError: Implementing class
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at org.apache.jorphan.reflect.ClassFinder.isChildOf(ClassFinder.java:377)
    at org.apache.jorphan.reflect.ClassFinder.access$000(ClassFinder.java:47)
    at org.apache.jorphan.reflect.ClassFinder$ExtendsClassFilter.accept(ClassFinder.java:92)
    at org.apache.jorphan.reflect.ClassFinder.findClassesInOnePath(ClassFinder.java:441)
    at org.apache.jorphan.reflect.ClassFinder.findClasses(ClassFinder.java:289)
    at org.apache.jorphan.reflect.ClassFinder.findClassesThatExtend(ClassFinder.java:264)
    at org.apache.jorphan.reflect.ClassFinder.findClassesThatExtend(ClassFinder.java:196)
    at org.apache.jorphan.reflect.ClassFinder.findClassesThatExtend(ClassFinder.java:178)
    at org.apache.jorphan.reflect.ClassFinder.findClassesThatExtend(ClassFinder.java:140)
    at org.apache.jmeter.protocol.java.control.gui.JUnitTestSamplerGui.setupClasslist(JUnitTestSamplerGui.java:181)
    at org.apache.jmeter.protocol.java.control.gui.JUnitTestSamplerGui.createClassPanel(JUnitTestSamplerGui.java:212)
    at org.apache.jmeter.protocol.java.control.gui.JUnitTestSamplerGui.init(JUnitTestSamplerGui.java:167)
    at org.apache.jmeter.protocol.java.control.gui.JUnitTestSamplerGui.<init>(JUnitTestSamplerGui.java:147)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at java.lang.Class.newInstance(Class.java:442)
    at org.apache.jmeter.gui.util.MenuFactory.initializeMenus(MenuFactory.java:492)
    at org.apache.jmeter.gui.util.MenuFactory.<clinit>(MenuFactory.java:160)
    at org.apache.jmeter.control.gui.TestPlanGui.createPopupMenu(TestPlanGui.java:93)
    at org.apache.jmeter.gui.tree.JMeterTreeNode.createPopupMenu(JMeterTreeNode.java:156)
    at org.apache.jmeter.gui.action.EditCommand.doAction(EditCommand.java:47)
    at org.apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.java:80)
    at org.apache.jmeter.gui.action.ActionRouter.access$000(ActionRouter.java:40)
    at org.apache.jmeter.gui.action.ActionRouter$1.run(ActionRouter.java:62)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

2016/07/08 13:51:34 ERROR - jmeter.JMeter: Uncaught exception:  java.lang.IncompatibleClassChangeError: Implementing class
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at org.apache.jorphan.reflect.ClassFinder.isChildOf(ClassFinder.java:377)
    at org.apache.jorphan.reflect.ClassFinder.access$000(ClassFinder.java:47)
    at org.apache.jorphan.reflect.ClassFinder$ExtendsClassFilter.accept(ClassFinder.java:92)
    at org.apache.jorphan.reflect.ClassFinder.findClassesInOnePath(ClassFinder.java:441)
    at org.apache.jorphan.reflect.ClassFinder.findClasses(ClassFinder.java:289)
    at org.apache.jorphan.reflect.ClassFinder.findClassesThatExtend(ClassFinder.java:264)
    at org.apache.jorphan.reflect.ClassFinder.findClassesThatExtend(ClassFinder.java:196)
    at org.apache.jorphan.reflect.ClassFinder.findClassesThatExtend(ClassFinder.java:178)
    at org.apache.jorphan.reflect.ClassFinder.findClassesThatExtend(ClassFinder.java:140)
    at org.apache.jmeter.protocol.java.control.gui.JUnitTestSamplerGui.setupClasslist(JUnitTestSamplerGui.java:181)
    at org.apache.jmeter.protocol.java.control.gui.JUnitTestSamplerGui.createClassPanel(JUnitTestSamplerGui.java:212)
    at org.apache.jmeter.protocol.java.control.gui.JUnitTestSamplerGui.init(JUnitTestSamplerGui.java:167)
    at org.apache.jmeter.protocol.java.control.gui.JUnitTestSamplerGui.<init>(JUnitTestSamplerGui.java:147)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at java.lang.Class.newInstance(Class.java:442)
    at org.apache.jmeter.gui.util.MenuFactory.initializeMenus(MenuFactory.java:492)
    at org.apache.jmeter.gui.util.MenuFactory.<clinit>(MenuFactory.java:160)
    at org.apache.jmeter.control.gui.TestPlanGui.createPopupMenu(TestPlanGui.java:93)
    at org.apache.jmeter.gui.tree.JMeterTreeNode.createPopupMenu(JMeterTreeNode.java:156)
    at org.apache.jmeter.gui.action.EditCommand.doAction(EditCommand.java:47)
    at org.apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.java:80)
    at org.apache.jmeter.gui.action.ActionRouter.access$000(ActionRouter.java:40)
    at org.apache.jmeter.gui.action.ActionRouter$1.run(ActionRouter.java:62)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

2016/07/08 13:51:35 ERROR - jmeter.JMeter: Uncaught exception:  java.lang.NoClassDefFoundError: Could not initialize class org.apache.jmeter.gui.util.MenuFactory
    at org.apache.jmeter.control.gui.TestPlanGui.createPopupMenu(TestPlanGui.java:93)
    at org.apache.jmeter.gui.tree.JMeterTreeNode.createPopupMenu(JMeterTreeNode.java:156)
    at org.apache.jmeter.gui.action.EditCommand.doAction(EditCommand.java:47)
    at org.apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.java:80)
    at org.apache.jmeter.gui.action.ActionRouter.access$000(ActionRouter.java:40)
    at org.apache.jmeter.gui.action.ActionRouter$1.run(ActionRouter.java:62)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

我一整天都在做一些研究,到目前为止还没有任何解决办法。因此,没有人会浪费他们的时间,结果,比如,实际上,所有来自此日志中各种堆栈跟踪错误的谷歌搜索结果,都没有产生可行的结果。我正在使用Jmeter 3,但已经在Jmeter 2.12和Jmeter 2.9中进行了尝试。这可能相关,也可能不相关,但Jmeter 2.12的工作原理是不会发生此错误,但是采样器中没有出现任何单元测试

第一行解释了一切:

丢失的罐子

无法创建kg.apc.jmeter.config.redis.RedisDataSet。java.lang.NoClassDefFoundError:org/apache/commons/pool/impl/GenericObjectPool$Config

这是因为JMeter类路径中缺少JAR

看起来您的测试是在某个安装了插件的地方创建的,您当前正试图在干净的JMeter上运行它

我建议如下:

清洁JMeter 3.0 使用插件管理器安装Redis数据集 将测试库导入lib/junit文件夹 重新启动JMeter
第一行解释了一切:

丢失的罐子

无法创建kg.apc.jmeter.config.redis.RedisDataSet。java.lang.NoClassDefFoundError:org/apache/commons/pool/impl/GenericObjectPool$Config

这是因为JMeter类路径中缺少JAR

看起来您的测试是在某个安装了插件的地方创建的,您当前正试图在干净的JMeter上运行它

我建议如下:

清洁JMeter 3.0 使用插件管理器安装Redis数据集 将测试库导入lib/junit文件夹 重新启动JMeter 我建议你:

安装一个干净的3.0版本

在jmeter/lib中添加依赖项

您在lib/junit中的junit类

如果使用JUnit4,请确保在junit请求采样器中勾选SearchforJUnit4注释框

您的案例不需要安装Jmeter插件或插件管理器

如果问题仍然存在,请显示新的jmeter.log文件

我建议您:

安装一个干净的3.0版本

在jmeter/lib中添加依赖项

您在lib/junit中的junit类

如果使用JUnit4,请确保在junit请求采样器中勾选SearchforJUnit4注释框

您的案例不需要安装Jmeter插件或插件管理器


如果问题仍然存在,请显示新的jmeter.log文件

我已解决了所有人的问题,但它并没有真正解释堆栈跟踪中出现这些错误的原因。单元测试需要凭证,事实证明我必须将凭证放在Jmeter/bin文件夹中。一旦我这样做了,测试运行良好。同样,我也不知道为什么这会导致错误

我每个人都解决了这个问题,但是它并没有真正解释为什么这些是堆栈跟踪中的错误。单元测试需要凭证,事实证明我必须将凭证放在Jmeter/bin文件夹中。一旦我这样做了,测试运行良好。同样,我也不知道为什么这会导致错误

这也是我的第一个想法。我试过这些步骤,但都不起作用。此外,当我使用它附带的测试junit jar和其他带有单元测试的jar时,JMeter工作得很好。我想我的罐子里可能有什么东西劫持了它,或者不允许找到GenericObject。这也是我的第一个想法。我试过这些步骤,但都不起作用。此外,当我使用它附带的测试junit jar和其他带有单元测试的jar时,JMeter工作得很好。我想我的罐子里可能有什么东西劫持了它或者不允许找到GenericObject。