JMeter - ElasticSearch 后端侦听器插件不起作用

JMeter - ElasticSearch backend listener plugin doesn't work

我有 JMeter 3.3,我添加了 ElasticSearch backend listener 插件。

我打开了 JMeter GUI 并尝试创建后端侦听器,但失败并出现错误:

2017-10-17 14:35:24,785 ERROR o.a.j.g.GuiPackage: Problem retrieving gui for org.apache.jmeter.visualizers.backend.BackendListenerGui
java.lang.NoClassDefFoundError: okhttp3/MediaType
    at net.kvak.jmeter.backendlistener.elasticsearch.ElasticsearchBackend.<clinit>(ElasticsearchBackend.java:50) ~[elasticsearch-backend-listener-1.5.jar:?]
    at java.lang.Class.forName0(Native Method) ~[?:1.8.0_144]
    at java.lang.Class.forName(Unknown Source) ~[?:1.8.0_144]
    at org.apache.jmeter.visualizers.backend.BackendListenerGui.actionPerformed(BackendListenerGui.java:166) ~[ApacheJMeter_components.jar:3.3 r1808647]
    at javax.swing.JComboBox.fireActionEvent(Unknown Source) ~[?:1.8.0_144]
    at javax.swing.JComboBox.setSelectedItem(Unknown Source) ~[?:1.8.0_144]
    at javax.swing.JComboBox.setSelectedIndex(Unknown Source) ~[?:1.8.0_144]
    at org.apache.jmeter.visualizers.backend.BackendListenerGui.clearGui(BackendListenerGui.java:281) ~[ApacheJMeter_components.jar:3.3 r1808647]
    at org.apache.jmeter.gui.GuiPackage.createTestElement(GuiPackage.java:348) ~[ApacheJMeter_core.jar:3.3 r1808647]
    at org.apache.jmeter.gui.action.AddToTree.doAction(AddToTree.java:68) ~[ApacheJMeter_core.jar:3.3 r1808647]
    at org.apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.java:80) ~[ApacheJMeter_core.jar:3.3 r1808647]
    at org.apache.jmeter.gui.action.ActionRouter.lambda$actionPerformed[=10=](ActionRouter.java:65) ~[ApacheJMeter_core.jar:3.3 r1808647]
    at java.awt.event.InvocationEvent.dispatch(Unknown Source) [?:1.8.0_144]
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source) [?:1.8.0_144]
    at java.awt.EventQueue.access0(Unknown Source) [?:1.8.0_144]
    at java.awt.EventQueue.run(Unknown Source) [?:1.8.0_144]
    at java.awt.EventQueue.run(Unknown Source) [?:1.8.0_144]
    at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_144]
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) [?:1.8.0_144]
    at java.awt.EventQueue.dispatchEvent(Unknown Source) [?:1.8.0_144]
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) [?:1.8.0_144]
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) [?:1.8.0_144]
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) [?:1.8.0_144]
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_144]
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_144]
    at java.awt.EventDispatchThread.run(Unknown Source) [?:1.8.0_144]
Caused by: java.lang.ClassNotFoundException: okhttp3.MediaType
    at java.net.URLClassLoader.findClass(Unknown Source) ~[?:1.8.0_144]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_144]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_144]
    ... 26 more
2017-10-17 14:35:30,212 ERROR o.a.j.g.a.AddToTree: Exception while adding a component to tree.
java.lang.RuntimeException: java.lang.NoClassDefFoundError: okhttp3/MediaType
    at org.apache.jmeter.gui.GuiPackage.createTestElement(GuiPackage.java:359) ~[ApacheJMeter_core.jar:3.3 r1808647]
    at org.apache.jmeter.gui.action.AddToTree.doAction(AddToTree.java:68) ~[ApacheJMeter_core.jar:3.3 r1808647]
    at org.apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.java:80) ~[ApacheJMeter_core.jar:3.3 r1808647]
    at org.apache.jmeter.gui.action.ActionRouter.lambda$actionPerformed[=10=](ActionRouter.java:65) ~[ApacheJMeter_core.jar:3.3 r1808647]
    at java.awt.event.InvocationEvent.dispatch(Unknown Source) [?:1.8.0_144]
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source) [?:1.8.0_144]
    at java.awt.EventQueue.access0(Unknown Source) [?:1.8.0_144]
    at java.awt.EventQueue.run(Unknown Source) [?:1.8.0_144]
    at java.awt.EventQueue.run(Unknown Source) [?:1.8.0_144]
    at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_144]
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) [?:1.8.0_144]
    at java.awt.EventQueue.dispatchEvent(Unknown Source) [?:1.8.0_144]
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) [?:1.8.0_144]
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) [?:1.8.0_144]
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) [?:1.8.0_144]
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_144]
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_144]
    at java.awt.EventDispatchThread.run(Unknown Source) [?:1.8.0_144]
Caused by: java.lang.NoClassDefFoundError: okhttp3/MediaType
    at net.kvak.jmeter.backendlistener.elasticsearch.ElasticsearchBackend.<clinit>(ElasticsearchBackend.java:50) ~[elasticsearch-backend-listener-1.5.jar:?]
    at java.lang.Class.forName0(Native Method) ~[?:1.8.0_144]
    at java.lang.Class.forName(Unknown Source) ~[?:1.8.0_144]
    at org.apache.jmeter.visualizers.backend.BackendListenerGui.actionPerformed(BackendListenerGui.java:166) ~[ApacheJMeter_components.jar:3.3 r1808647]
    at javax.swing.JComboBox.fireActionEvent(Unknown Source) ~[?:1.8.0_144]
    at javax.swing.JComboBox.setSelectedItem(Unknown Source) ~[?:1.8.0_144]
    at javax.swing.JComboBox.setSelectedIndex(Unknown Source) ~[?:1.8.0_144]
    at org.apache.jmeter.visualizers.backend.BackendListenerGui.clearGui(BackendListenerGui.java:281) ~[ApacheJMeter_components.jar:3.3 r1808647]
    at org.apache.jmeter.gui.GuiPackage.createTestElement(GuiPackage.java:348) ~[ApacheJMeter_core.jar:3.3 r1808647]
    ... 17 more
Caused by: java.lang.ClassNotFoundException: okhttp3.MediaType
    at java.net.URLClassLoader.findClass(Unknown Source) ~[?:1.8.0_144]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_144]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_144]
    at net.kvak.jmeter.backendlistener.elasticsearch.ElasticsearchBackend.<clinit>(ElasticsearchBackend.java:50) ~[elasticsearch-backend-listener-1.5.jar:?]
    at java.lang.Class.forName0(Native Method) ~[?:1.8.0_144]
    at java.lang.Class.forName(Unknown Source) ~[?:1.8.0_144]
    at org.apache.jmeter.visualizers.backend.BackendListenerGui.actionPerformed(BackendListenerGui.java:166) ~[ApacheJMeter_components.jar:3.3 r1808647]
    at javax.swing.JComboBox.fireActionEvent(Unknown Source) ~[?:1.8.0_144]
    at javax.swing.JComboBox.setSelectedItem(Unknown Source) ~[?:1.8.0_144]
    at javax.swing.JComboBox.setSelectedIndex(Unknown Source) ~[?:1.8.0_144]
    at org.apache.jmeter.visualizers.backend.BackendListenerGui.clearGui(BackendListenerGui.java:281) ~[ApacheJMeter_components.jar:3.3 r1808647]
    at org.apache.jmeter.gui.GuiPackage.createTestElement(GuiPackage.java:348) ~[ApacheJMeter_core.jar:3.3 r1808647]
    ... 17 more

plugin group 中发送了问题,但没有收到任何答复。

是否仅适用于额外的 plugin/jars?在不同的版本上?

还有为什么它在 https://jmeter-plugins.org/ 中没有页面(尽管它显示在站点的搜索结果中)?

您似乎缺少依赖项或版本错误。

缺少依赖项是 okhttp 或其依赖项之一。

将它们添加到 jmeter/lib 文件夹。

我是修改插件并将其放在 jmeter-plugins 上的人。这似乎是两个版本的 OkHttpClient 之间的冲突。一个由插件加载,另一个尚未找到。目前正在调查,一旦修复将发布 2.0。

我想为延迟回答道歉(字面意思是刚刚找到你的 post)。如需更多帮助,请哦,请随时在 GitHub 存储库页面上打开一个问题 :)。

https://github.com/delirius325/JMeter_ElasticsearchBackendListener/

祝你好运,

好的,了解了通过插件管理器安装插件时出现问题的原因。基本上,在他们的一个 JSON 文件中缺少一对 key/value 依赖项。

发出拉取请求。现在,要解决这个问题,您需要做的就是下载一些 JAR 文件并将它们放入您的“$JMETER_HOME/lib”文件夹中。

Okio 1.13.0

OkHttp 3.9.1

GSON 2.8.2