I'm running JMeter non GUI mode and generating dashboard and it's working,
Next step I wanted to add UUID to each sampler to make it easier to find my request in logs
So sampler names are: Login ${uuid} , operation1 ${uuid},...
while uuid variable set before.
In GUI mode it helps to find problems faster and easier.
When I execute the non GUI mode it failed on java.lang.OutOfMemoryError: GC overhead limit exceeded.
Basically (I did a shorter test) it create a report with each login (and operation) separately, as
Login f9b9c9e9-15ac-4b96-a454-20d8fc7d8844 1 0 0.00% 622.00 622 622 622.00 622.00 622.00 1.61 0.60 0.90
Login f67871f5-f447-4125-85e7-981592d9bff2 ...
How can aggregate all logins/specific operation to a single result and prevent such exception in non GUI with dashboard execution?
Exception in log:
2018-01-17 09:06:17,302 ERROR o.a.j.JMeter: Uncaught exception:
java.lang.OutOfMemoryError: GC overhead limit exceeded
at org.apache.jmeter.report.processor.graph.AbstractGraphConsumer.addKeyData(AbstractGraphConsumer.java:352) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.graph.AbstractGraphConsumer.stopConsuming(AbstractGraphConsumer.java:563) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.AbstractSampleConsumer.stopProducing(AbstractSampleConsumer.java:241) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.FilterConsumer.stopConsuming(FilterConsumer.java:112) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.AbstractSampleConsumer.stopProducing(AbstractSampleConsumer.java:241) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.FilterConsumer.stopConsuming(FilterConsumer.java:112) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.AbstractSampleConsumer.stopProducing(AbstractSampleConsumer.java:241) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.NormalizerSampleConsumer.stopConsuming(NormalizerSampleConsumer.java:125) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.CsvFileSampleSource$PrivateProducer.stopProducing(CsvFileSampleSource.java:339) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.CsvFileSampleSource.produce(CsvFileSampleSource.java:185) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.CsvFileSampleSource.run(CsvFileSampleSource.java:238) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.dashboard.ReportGenerator.generate(ReportGenerator.java:244) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.JMeter$ListenToTest.generateReport(JMeter.java:1198) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.JMeter$ListenToTest.testEnded(JMeter.java:1134) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfEnd(StandardJMeterEngine.java:230) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:498) ~[ApacheJMeter_core.jar:3.3 r1808647]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_05]
EDIT:
Try to add controller for each request and add to user.properties:
jmeter.reportgenerator.exporter.html.series_filter=^(Login|Operation1|Operation2)(-success|-failure)?$
I insert parent above all transaction with UUID and call Transaction controller in the name of the operation, as Login:
Still in dashboard (small execution) the operations are seen not as a group.
Now getting different error but still OutOfMemoryError:
2018-01-17 13:25:07,766 ERROR o.a.j.JMeter: Uncaught exception:
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:3175) ~[?:1.8.0_05]
at java.util.ArrayList.grow(ArrayList.java:246) ~[?:1.8.0_05]
at java.util.ArrayList.ensureExplicitCapacity(ArrayList.java:220) ~[?:1.8.0_05]
at java.util.ArrayList.ensureCapacityInternal(ArrayList.java:212) ~[?:1.8.0_05]
at java.util.ArrayList.add(ArrayList.java:443) ~[?:1.8.0_05]
at org.apache.jmeter.report.processor.ListResultData.addResult(ListResultData.java:54) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.graph.AbstractGraphConsumer.addKeyData(AbstractGraphConsumer.java:353) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.graph.AbstractGraphConsumer.stopConsuming(AbstractGraphConsumer.java:563) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.AbstractSampleConsumer.stopProducing(AbstractSampleConsumer.java:241) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.FilterConsumer.stopConsuming(FilterConsumer.java:112) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.AbstractSampleConsumer.stopProducing(AbstractSampleConsumer.java:241) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.FilterConsumer.stopConsuming(FilterConsumer.java:112) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.AbstractSampleConsumer.stopProducing(AbstractSampleConsumer.java:241) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.NormalizerSampleConsumer.stopConsuming(NormalizerSampleConsumer.java:125) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.CsvFileSampleSource$PrivateProducer.stopProducing(CsvFileSampleSource.java:339) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.CsvFileSampleSource.produce(CsvFileSampleSource.java:185) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.processor.CsvFileSampleSource.run(CsvFileSampleSource.java:238) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.report.dashboard.ReportGenerator.generate(ReportGenerator.java:244) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.JMeter$ListenToTest.generateReport(JMeter.java:1198) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.JMeter$ListenToTest.testEnded(JMeter.java:1134) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfEnd(StandardJMeterEngine.java:230) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:498) ~[ApacheJMeter_core.jar:3.3 r1808647]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_05]
An option is to do the following:
Add a Transaction Sampler as parent of Login ${UUID}
In user.properties, only include the parent Transaction name:
jmeter.reportgenerator.exporter.html.series_filter=^(Search|Order)(-success|-failure)?$
You can use menu in jmeter:
You may have to increase -Xmx and you should open an issue providing the Heap dump to jmeter for analysis, it could be a bug but it may just be due to number of different transactions.
Related
This question already has an answer here:
Jmeter distribtion testting on linux
(1 answer)
Closed 2 years ago.
I am running distributed load testing using JMeter. And I configured few new servers but the problem is it throwing the error "non-JRMP server at remote endpoint".
I followed the correct procedure of generating jks, starting the master, starting slave etc. And in both the client and server, I am able to start the jmeter-server.bat files and I see both the machines have started.
Please note - Firewall is already disabled
Slave:
Created remote object: UnicastServerRef2 [liveRef: [endpoint:192.168.0.3:3424,SSLRMIServerSocketFactory(host=192.168.0.3, keyStoreLocation=rmi_keystore.jks, type=JKS, trustStoreLocation=rmi_keystore.jks, type=JKS, alias=rmi),SSLRMIClientSocketFactory(keyStoreLocation=rmi_keystore.jks, type=JKS, trustStoreLocation=rmi_keystore.jks, type=JKS, alias=rmi),objID:[-39bc9d70:176812fac65:-7fff, 1785184603072403670]]]
Master:
Found ApacheJMeter_core.jar
Created remote object: UnicastServerRef2 [liveRef: [endpoint:192.168.0.1:27849,objID:[-763a229d:176811229c1:-7fff, -5773628807602928343]]]
Can someone suggest if there is anything can be done? All the machines are in same subnet.
jmeter log of master:
2020-12-20 09:41:34,608 INFO o.a.j.e.DistributedRunner: Configuring remote engine: 192.168.0.3
2020-12-20 09:41:34,608 INFO o.a.j.r.RmiUtils: Disabling SSL for RMI as server.rmi.ssl.disable is set to 'true'
2020-12-20 09:41:34,624 ERROR o.a.j.e.DistributedRunner: Failed to create engine at 192.168.0.3
java.rmi.ConnectIOException: non-JRMP server at remote endpoint
at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source) ~[?:1.8.0_241]
at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source) ~[?:1.8.0_241]
at sun.rmi.server.UnicastRef.newCall(Unknown Source) ~[?:1.8.0_241]
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source) ~[?:1.8.0_241]
at org.apache.jmeter.engine.ClientJMeterEngine.getEngine(ClientJMeterEngine.java:72) ~[ApacheJMeter_core.jar:5.2.1]
at org.apache.jmeter.engine.ClientJMeterEngine.(ClientJMeterEngine.java:85) ~[ApacheJMeter_core.jar:5.2.1]
at org.apache.jmeter.engine.DistributedRunner.createEngine(DistributedRunner.java:244) ~[ApacheJMeter_core.jar:5.2.1]
at org.apache.jmeter.engine.DistributedRunner.getClientEngine(DistributedRunner.java:221) ~[ApacheJMeter_core.jar:5.2.1]
at org.apache.jmeter.engine.DistributedRunner.init(DistributedRunner.java:94) ~[ApacheJMeter_core.jar:5.2.1]
at org.apache.jmeter.gui.action.RemoteStart.doAction(RemoteStart.java:80) ~[ApacheJMeter_core.jar:5.2.1]
at org.apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.java:88) ~[ApacheJMeter_core.jar:5.2.1]
at org.apache.jmeter.gui.action.ActionRouter.lambda$actionPerformed$0(ActionRouter.java:70) ~[ApacheJMeter_core.jar:5.2.1]
at java.awt.event.InvocationEvent.dispatch(Unknown Source) [?:1.8.0_241]
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) [?:1.8.0_241]
at java.awt.EventQueue.access$500(Unknown Source) [?:1.8.0_241]
at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_241]
at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_241]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_241]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) [?:1.8.0_241]
at java.awt.EventQueue.dispatchEvent(Unknown Source) [?:1.8.0_241]
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) [?:1.8.0_241]
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) [?:1.8.0_241]
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) [?:1.8.0_241]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_241]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_241]
at java.awt.EventDispatchThread.run(Unknown Source) [?:1.8.0_241]
You have
server.rmi.ssl.disable=true - on the master
server.rmi.ssl.disable=false - on the slave
It leads to the following situation: master tries to communicate with the slave using plain text and the slave is expecting SSL encrypted messages therefore they cannot "understand" each other hence communication fails.
You either need to enable SSL on master, generate the keystore, etc. or to disable it on the slave(s)
More information:
Remote hosts and RMI configuration
How to Perform Distributed Testing in JMeter
Apache JMeter Distributed Testing Step-by-step
I am trying to implement a Jmeter script (jmeter version 5.1)for SSO functionality with Kerberos.
I have done the set-up in the krb5 and jass conf files and have also updated HTTP Authorization Manager with the Domain,Realm and mechanism as Kerberos.
The script does not output the SAML Response in the URL when running the script. Checking the jmeter logs gives the below error:
2020-02-14 12:32:23,453 WARN o.a.j.p.h.c.KerberosManager: Could not log in user gl0
javax.security.auth.login.LoginException: null (68)
at com.sun.security.auth.module.Krb5LoginModule.attemptAuthentication(Unknown Source) ~[?:1.8.0_241]
at com.sun.security.auth.module.Krb5LoginModule.login(Unknown Source) ~[?:1.8.0_241]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_241]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_241]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_241]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_241]
at javax.security.auth.login.LoginContext.invoke(Unknown Source) ~[?:1.8.0_241]
at javax.security.auth.login.LoginContext.access$000(Unknown Source) ~[?:1.8.0_241]
at javax.security.auth.login.LoginContext$4.run(Unknown Source) ~[?:1.8.0_241]
at javax.security.auth.login.LoginContext$4.run(Unknown Source) ~[?:1.8.0_241]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_241]
at javax.security.auth.login.LoginContext.invokePriv(Unknown Source) ~[?:1.8.0_241]
at javax.security.auth.login.LoginContext.login(Unknown Source) ~[?:1.8.0_241]
at org.apache.jmeter.protocol.http.control.KerberosManager.lambda$getSubjectForUser$0(KerberosManager.java:70) ~[ApacheJMeter_http.jar:5.1 r1853635]
at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_241]
at org.apache.jmeter.protocol.http.control.KerberosManager.getSubjectForUser(KerberosManager.java:83) [ApacheJMeter_http.jar:5.1 r1853635]
at org.apache.jmeter.protocol.http.control.AuthManager.getSubjectForUrl(AuthManager.java:294) [ApacheJMeter_http.jar:5.1 r1853635]
at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.executeRequest(HTTPHC4Impl.java:829) [ApacheJMeter_http.jar:5.1 r1853635]
at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:572) [ApacheJMeter_http.jar:5.1 r1853635]
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:67) [ApacheJMeter_http.jar:5.1 r1853635]
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1231) [ApacheJMeter_http.jar:5.1 r1853635]
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1220) [ApacheJMeter_http.jar:5.1 r1853635]
at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:622) [ApacheJMeter_core.jar:5.1 r1853635]
at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:546) [ApacheJMeter_core.jar:5.1 r1853635]
at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:486) [ApacheJMeter_core.jar:5.1 r1853635]
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:253) [ApacheJMeter_core.jar:5.1 r1853635]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_241]
Caused by: sun.security.krb5.KrbException: null (68)
at sun.security.krb5.KrbAsRep.<init>(Unknown Source) ~[?:1.8.0_241]
at sun.security.krb5.KrbAsReqBuilder.send(Unknown Source) ~[?:1.8.0_241]
at sun.security.krb5.KrbAsReqBuilder.action(Unknown Source) ~[?:1.8.0_241]
... 27 more
Unfortunately your question doesn't have enough details in order to guess the failure reason, going forward consider adding screenshots of:
HTTP Request sampler
HTTP Authorization Manager
Contents of krb5.conf and jaas.conf files
It would be also beneficial to have more verbose logs, add the next line to log4j2.xml file:
<Logger name="org.apache.jmeter.protocol.http.control" level="debug" />
and set sun.security.krb5.debug system property to true
More information:
Logging and error messages
Windows Authentication with Apache JMeter
Kerberos Troubleshooting
I'm running my Master Jmeter in my local laptop and created Slave in AWS EC2 Windows instance. I have set up the IP address of the EC2 in my master Jmeter properties file.
I also made sure that both the master and slave are having the same JMeter Version.
Now when i connect slave through gui or non gui mode i'm getting the below error.
Please help me resolve this.
14:52:23,294 ERROR o.a.j.g.a.ActionRouter: Error processing org.apache.jmeter.gui.action.RemoteStart#5b22b970
java.lang.RuntimeException: Following remote engines could not be configured:[172.31.3.238]
at org.apache.jmeter.engine.DistributedRunner.init(DistributedRunner.java:112) ~[ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.gui.action.RemoteStart.doAction(RemoteStart.java:80) ~[ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.java:88) ~[ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.gui.action.ActionRouter.lambda$actionPerformed$0(ActionRouter.java:70) ~[ApacheJMeter_core.jar:4.0 r1823414]
at java.awt.event.InvocationEvent.dispatch(Unknown Source) [?:1.8.0_171]
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) [?:1.8.0_171]
at java.awt.EventQueue.access$500(Unknown Source) [?:1.8.0_171]
at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_171]
at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_171]
at java.security.AccessController.doPrivileged(Native Method) [?:1.8.0_171]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) [?:1.8.0_171]
at java.awt.EventQueue.dispatchEvent(Unknown Source) [?:1.8.0_171]
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) [?:1.8.0_171]
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) [?:1.8.0_171]
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) [?:1.8.0_171]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_171]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_171]
at java.awt.EventDispatchThread.run(Unknown Source) [?:1.8.0_171]
Looking into 172.31.3.238 address it seems you are trying to connect the private address of your AWS instance and you should be using the Public IP instead.
Also make sure that the relevant port 1099 by default is exposed via AWS Security Groups and your Windows firewall.
Also consider moving your master instance to AWS as well, otherwise you might get huge bills for the traffic which is free between AWS instances in the same region. See How to Perform Distributed Testing in JMeter for more information on setting up the connectivity between master and slaves.
When u create master/Slave relationship it is preferred to have both the machines in the same vlan so that there shouldn't be any communication issue, try to have them in same vlan and the check it..!!
we have an requirement to write RABBIT MQ Listener code in one of our spring application which is running in JAVA 1.6 environment. I have tried the samples provided in spring.io site(https://spring.io/guides/gs/messaging-rabbitmq/). Seems that one is not supporting the java 1.6. Could some please help me to find the SPRING RABBIT JARs version compatible with JAVA 1.6.
Here is the exception with spring-rabbit-1.0.0.RELEASE.jar
SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
java.lang.NoClassDefFoundError: com/rabbitmq/client/Channel
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.getDeclaredMethods(Unknown Source)
at org.springframework.core.type.StandardAnnotationMetadata.hasAnnotatedMethods(StandardAnnotationMetadata.java:129)
at org.springframework.context.annotation.ConfigurationClassUtils.isLiteConfigurationCandidate(ConfigurationClassUtils.java:157)
at org.springframework.context.annotation.ConfigurationClassUtils.checkConfigurationClassCandidate(ConfigurationClassUtils.java:108)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:278)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:239)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:254)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:94)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:606)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:462)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4791)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5285)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: com.rabbitmq.client.Channel
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
... 25 more
1.0.0 is extremely old.
The current version for Java 6 is 1.7.7 see the project page for versions.
It is compatible with spring boot 1.5.x; the guides have been converted to boot 2, which requires java 8.
I have JMeter 3.3 and I added ElasticSearch backend listener plugin.
I opened JMeter GUI and tried create back end listener and it failed with error:
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$0(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.access$500(Unknown Source) [?:1.8.0_144]
at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_144]
at java.awt.EventQueue$3.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$0(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.access$500(Unknown Source) [?:1.8.0_144]
at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_144]
at java.awt.EventQueue$3.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
Sent question in plugin group but didn't receive any answer.
Is it working only with additional plugin/jars? on different version?
Also why doesn't it have page in https://jmeter-plugins.org/ (although it displayed in search results in site)?
Alright, realized what was causing the issue when installing the plugin through the plugins manager. Basically, was missing a key/value pair in one of their JSON files for the dependencies.
Made the pull request. For now, to fix the issue all you will need to do is download some JAR files and put them into your "$JMETER_HOME/lib" folder.
Okio 1.13.0
OkHttp 3.9.1
GSON 2.8.2
It looks like you have a missing dependency or a wrong version of it.
Missing dependency would be okhttp or one of its dependencies.
Add them to jmeter/lib folder.
I'm the person who reworked the plugin and put it on jmeter-plugins. It seems to be a conflict between two versions of OkHttpClient. One loaded by the plugin, and the other has yet to be found. Currently investiguating and will release 2.0 as soon as it is fixed.
I want to apologize for the delay on an answer (literally just found your post). For any more help, please oh please, feel free to open an issue on the GitHub repository page :).
https://github.com/delirius325/JMeter_ElasticsearchBackendListener/
Have a good one,