JMeter distributed load testing - Master in local system and slave in AWS EC2 windows instance - not able to connect - jmeter

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..!!

Related

jmeter slave connection and configuration error [duplicate]

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

JMeter Error when I try to save a test plan file

I have the following error when I tryed to save my test plan in JMeter: Couldn´t save to file (Acess Denyed)
¿Can anyone help me?
The log trace is this one:
ERROR o.a.j.g.a.Save: Failed to backup file : C:\Program Files
(x86)\Sisteplant\LoadTests\TestDefinitions\HandlingUnitStateChangeSimulation.jmx
java.io.FileNotFoundException: C:\Program Files
(x86)\Sisteplant\LoadTests\JMeter\backups\HandlingUnitStateChangeSimulation-000001.jmx (Acceso
denegado)
at java.io.FileOutputStream.open0(Native Method) ~[?:1.8.0_191]
at java.io.FileOutputStream.open(Unknown Source) ~[?:1.8.0_191]
at java.io.FileOutputStream.<init>(Unknown Source) ~[?:1.8.0_191]
at java.io.FileOutputStream.<init>(Unknown Source) ~[?:1.8.0_191]
at org.apache.commons.io.FileUtils.doCopyFile(FileUtils.java:1142) ~[commons-io-2.5.jar:2.5]
at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:1088) ~[commons-io-2.5.jar:2.5]
at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:1040) ~[commons-io-2.5.jar:2.5]
at org.apache.jmeter.gui.action.Save.createBackupFile(Save.java:378) ~[ApacheJMeter_core.jar:3.2
r1790748]
at org.apache.jmeter.gui.action.Save.doAction(Save.java:209) ~[ApacheJMeter_core.jar:3.2 r1790748]
at org.apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.java:74) ~
[ApacheJMeter_core.jar:3.2 r1790748]
at org.apache.jmeter.gui.action.ActionRouter.lambda$actionPerformed$0(ActionRouter.java:59) ~
[ApacheJMeter_core.jar:3.2 r1790748]
at java.awt.event.InvocationEvent.dispatch(Unknown Source) [?:1.8.0_191]
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) [?:1.8.0_191]
at java.awt.EventQueue.access$500(Unknown Source) [?:1.8.0_191]
at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_191]
at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_191]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_191]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
[?:1.8.0_191]
at java.awt.EventQueue.dispatchEvent(Unknown Source) [?:1.8.0_191]
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) [?:1.8.0_191]
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) [?:1.8.0_191]
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) [?:1.8.0_191]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_191]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_191]
at java.awt.EventDispatchThread.run(Unknown Source) [?:1.8.0_191]
Thanks a lot,
Most probably your user doesn't have write permissions for the C:\Program Files (x86) folder therefore you're getting this error.
Choose different location (you definitely have write access to your home folder)
Another option is to run JMeter as administrator, this way you get rid of WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0 error as well which unlock some customisation persistence.
Also be informed that according to 9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure article you should always be using the latest version of JMeter so consider upgrading to JMeter 5.3 (or whatever is the latest stable JMeter version which is available at JMeter Downloads page) on next available opportunity.
not being on Java8 was the problem for me.
Install Java 8 and it will run fine.
Try the following:
Open JMeter -> Options -> Look and Feel -> Select any other theme other than Darcula.
Restart JMeter,
Create test plan and
try to save.
Save should work.

Unable to launch slave in JMeter 4.0

I want to do the JMeter Master Slave setup in JMeter 4.0 in Windows OS.
I have done the following change in the jmeter-server file.
RMI_HOST_DEF=-Djava.rmi.server.hostname=10.304.61.62
To launch the slave I execute the following command from the bin folder
jmeter-server
This is working in JMeter 3.1. But getting the following error in JMeter 4.0
ERROR o.a.j.JMeter: An error occurred:
java.rmi.server.ExportException: Listen failed on port: 0; nested exception is:
java.io.FileNotFoundException: rmi_keystore.jks (The system cannot find the file specified)
at
sun.rmi.transport.tcp.TCPTransport.listen(Unknown Source) ~[?:1.8.0_181]
at sun.rmi.transport.tcp.TCPTransport.exportObject(Unknown Source) ~[?:1.8.0_181]
at sun.rmi.transport.tcp.TCPEndpoint.exportObject(Unknown Source) ~[?:1.8.0_181]
at sun.rmi.transport.LiveRef.exportObject(Unknown Source) ~[?:1.8.0_181]
at
sun.rmi.server.UnicastServerRef.exportObject(Unknown Source) ~[?:1.8.0_181]
at java.rmi.server.UnicastRemoteObject.exportObject(Unknown Source) ~[?:1.8.0_181]
at java.rmi.server.UnicastRemoteObject.exportObject(Unknown Source) ~[?:1.8.0_181]
at java.rmi.server.UnicastRemoteObject.(Unknown Source) ~[?:1.8.0_181]
at
org.apache.jmeter.engine.RemoteJMeterEngineImpl.(RemoteJMeterEngineImpl.java:65) ~[ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.engine.RemoteJMeterEngineImpl.startServer(RemoteJMeterEngineImpl.java:71) ~[ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.JMeter.start(JMeter.java:501) [ApacheJMeter_core.jar:4.0 r1823414]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_181]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown
Source) ~[?:1.8.0_181]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_181]
at org.apache.jmeter.NewDriver.main(NewDriver.java:245) [ApacheJMeter.jar:4.0 r1823414]
Caused by: java.io.FileNotFoundException: rmi_keystore.jks (The system cannot find the file specified)
at java.io.FileInputStream.open0(Native Method) ~[?:1.8.0_181]
at java.io.FileInputStream.open(Unknown Source) ~[?:1.8.0_181]
at java.io.FileInputStream.<init>(Unknown Source) ~
[?:1.8.0_181]
at java.io.FileInputStream.<init>(Unknown Source) ~[?:1.8.0_181]
at org.apache.jmeter.rmi.SSLRMIServerSocketFactory.loadStore(SSLRMIServerSocketFactory.java:148) ~
[ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.rmi.SSLRMIServerSocketFactory.createServerSocket(SSLRMIServerSocketFactory.java:100) ~[ApacheJMeter_core.jar:4.0
r1823414]
at sun.rmi.transport.tcp.TCPEndpoint.newServerSocket(Unknown Source) ~[?:1.8.0_181]
... 16 more
According to Setting Up SSL chapter of the Remote Testing JMeter User Manual entry you need to do one of the following things:
If you want to use secure communication between master and slaves you need to launch create-rmi-keystore script (it's located in "bin" folder of your JMeter installation) - it will produce the required rmi_keystore.jks file.
If you don't want to use secure communication between master and slaves you can add the next line to user.properties file
server.rmi.ssl.disable=true
JMeter restart will bre required to pick the property up
No matter of the approach you will have to implement either 1 or 2 on master and all the slaves
The above answer is based on JMeter Distributed Testing with Docker article.

JMeter 4 - can't execute jmeter-server in windows 7

I download latest JMeter 4,
As part of Remote Testing
To run JMeter in remote node, start the JMeter server component on all machines you wish to run on by running the JMETER_HOME/bin/jmeter-server (unix) or JMETER_HOME/bin/jmeter-server.bat (windows) script.
I try to execute jmeter-server.bat in windows 7
and got the following error:
Server failed to start: java.rmi.server.ExportException: Listen failed on port:
0; nested exception is:
java.io.FileNotFoundException: rmi_keystore.jks (The system cannot find
the file specified)
An error occurred: Listen failed on port: 0; nested exception is:
java.io.FileNotFoundException: rmi_keystore.jks (The system cannot find
the file specified)
errorlevel=1
It seems that a file rmi_keystore.jks is missing. (I can't find it in JMeter folders)
In JMeter 3.3 jmeter-server.bat is working.
EDIT 1
after I execute create-rmi-keystore.bat it created rmi_keystore.jks, but I get other error:
Server failed to start: java.rmi.server.ExportException: Listen failed on port:
0; nested exception is:
java.io.IOException: java.security.UnrecoverableKeyException: Cannot rec
over key
An error occurred: Listen failed on port: 0; nested exception is:
java.io.IOException: java.security.UnrecoverableKeyException: Cannot rec
over key
errorlevel=1
error from log:
2018-02-11 12:09:13,916 ERROR o.a.j.e.DistributedRunner: Failed to create engine at 127.0.0.1
java.rmi.ConnectIOException: Exception creating connection to: 127.0.0.1; nested exception is:
java.io.IOException: java.security.UnrecoverableKeyException: Cannot recover key
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source) ~[?:1.8.0_25]
at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source) ~[?:1.8.0_25]
at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source) ~[?:1.8.0_25]
at sun.rmi.server.UnicastRef.newCall(Unknown Source) ~[?:1.8.0_25]
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source) ~[?:1.8.0_25]
at org.apache.jmeter.engine.ClientJMeterEngine.getEngine(ClientJMeterEngine.java:70) ~[ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.engine.ClientJMeterEngine.<init>(ClientJMeterEngine.java:83) ~[ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.engine.DistributedRunner.createEngine(DistributedRunner.java:237) ~[ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.engine.DistributedRunner.getClientEngine(DistributedRunner.java:213) [ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.engine.DistributedRunner.init(DistributedRunner.java:93) [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 org.apache.jmeter.gui.action.ActionRouter$$Lambda$63/2068100669.run(Unknown Source) [ApacheJMeter_core.jar:4.0 r1823414]
at java.awt.event.InvocationEvent.dispatch(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue.access$400(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_25]
at java.security.AccessController.doPrivileged(Native Method) [?:1.8.0_25]
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue.dispatchEvent(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.run(Unknown Source) [?:1.8.0_25]
Caused by: java.io.IOException: java.security.UnrecoverableKeyException: Cannot recover key
at org.apache.jmeter.rmi.SSLRMIClientSocketFactory.createSocket(SSLRMIClientSocketFactory.java:110) ~[ApacheJMeter_core.jar:4.0 r1823414]
... 28 more
Caused by: java.security.UnrecoverableKeyException: Cannot recover key
at sun.security.provider.KeyProtector.recover(Unknown Source) ~[?:1.8.0_25]
at sun.security.provider.JavaKeyStore.engineGetKey(Unknown Source) ~[?:1.8.0_25]
at sun.security.provider.JavaKeyStore$JKS.engineGetKey(Unknown Source) ~[?:1.8.0_25]
at java.security.KeyStore.getKey(Unknown Source) ~[?:1.8.0_25]
at sun.security.ssl.SunX509KeyManagerImpl.<init>(Unknown Source) ~[?:1.8.0_25]
at sun.security.ssl.KeyManagerFactoryImpl$SunX509.engineInit(Unknown Source) ~[?:1.8.0_25]
at javax.net.ssl.KeyManagerFactory.init(Unknown Source) ~[?:1.8.0_25]
at org.apache.jmeter.rmi.SSLRMIClientSocketFactory.createSocket(SSLRMIClientSocketFactory.java:103) ~[ApacheJMeter_core.jar:4.0 r1823414]
... 28 more
2018-02-11 12:09:24,368 INFO o.a.j.e.DistributedRunner: Failed to configure 127.0.0.1
2018-02-11 12:09:24,369 INFO o.a.j.e.DistributedRunner: Stopping remote engines
2018-02-11 12:09:24,370 INFO o.a.j.e.DistributedRunner: Remote engines have been stopped
2018-02-11 12:09:24,370 ERROR o.a.j.g.a.ActionRouter: Error processing org.apache.jmeter.gui.action.RemoteStart#3249a1ce
java.lang.RuntimeException: Following remote engines could not be configured:[127.0.0.1]
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 org.apache.jmeter.gui.action.ActionRouter$$Lambda$63/2068100669.run(Unknown Source) [ApacheJMeter_core.jar:4.0 r1823414]
at java.awt.event.InvocationEvent.dispatch(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue.access$400(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_25]
at java.security.AccessController.doPrivileged(Native Method) [?:1.8.0_25]
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) [?:1.8.0_25]
at java.awt.EventQueue.dispatchEvent(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_25]
at java.awt.EventDispatchThread.run(Unknown Source) [?:1.8.0_25]
EDIT 2
I tried to change server.rmi.ssl.keystore.password to password I wrote but got a different error
Server failed to start: java.rmi.server.ExportException: Listen failed on port:
0; nested exception is:
java.io.IOException: Keystore was tampered with, or password was incorre
ct
An error occurred: Listen failed on port: 0; nested exception is:
java.io.IOException: Keystore was tampered with, or password was incorre
ct
EDIT 3
I tried to set the server port manually SET SERVER_PORT=1099 according to reference but still trying to listen through port 0
On Windows this can be done by:
SET SERVER_PORT=
To solve issue, you need to follow:
http://jmeter.apache.org/usermanual/remote-test.html#setup_ssl
The problem was the answer to first question when executing create-rmi-keystore
What is your first and last name?
I should have answered rmi as it the default value in JMeter's property server.rmi.ssl.keystore.alias
Also (difference from JMeter 3.3) I needed to change JMeter's property remote_hosts so that it uses my host name (change from 127.0.0.1)
This is related to :
https://bz.apache.org/bugzilla/show_bug.cgi?id=62039
Had the same problem.
To solve it you have several options:
Set rmi-keystore password to changeit, as described in jmeter.properties:
Password of Trust store
server.rmi.ssl.truststore.password=changeit
If using custom password - add it to user.properties on jmeter-server machine
Disable SSL by passing -Jserver.rmi.ssl.disable=true
What worked for me (with JMeter 5.0) was an dedicated jmeter-server.properties file with this configurations:
# Type of keystore : JKS
server.rmi.ssl.keystore.type=JKS
#
# Keystore file that contains private key
server.rmi.ssl.keystore.file=rmi_keystore.jks
#
# Password of Keystore
server.rmi.ssl.keystore.password=changeit
#
# Key alias
server.rmi.ssl.keystore.alias=rmi
#
# Type of truststore : JKS
server.rmi.ssl.truststore.type=JKS
#
# Keystore file that contains certificate
server.rmi.ssl.truststore.file=rmi_keystore.jks
#
# Password of Trust store
server.rmi.ssl.truststore.password=changeit
I created a rmi_keystore.jks file with the create-rmi-keystore command in the JMeter bin folder. Then I started my server with jmeter-server -Gjmeter-server.properties. Also check then the log from the server to get the endpoint to connect your client with the server as user7294900 suggested.
Created remote object: UnicastServerRef2 [liveRef: [endpoint:[<this is your server>
I faced all the above problems, until i found the solution to it, which is this:
The error java.security.UnrecoverableKeyException: Cannot recover key occurs when the keystore and keyEntry passwords are different.
To resolve this issue, you must remove all traces of the past certificate and request file.
You must generate a new keystore, keyEntry and CSR and specify the same password for the keystore and the keyEntry.
There are two batch files in your bin folder. Run the "create-rmi-keystore" file first and then "jmeter"

JMeter - Getting Exception while running JMeter via GUI

I am trying to set up an aws server for performance testing of APIs where the logs will come. I installed Java and Jmeter on that server.
The application server is different i.e. test.server.com:8080
The aws server is different with different ip address.
The Jmeter GUI is installed on my laptop.
In my system in the apache Jmeter --> bin folder --> jmeter.properties, I have defined remote_hosts as ip address of the aws server where the logs should appear.
And server.rmi.localport=50000
I have not made any changes in the jmeter.properties file that is installed on aws server where the logs of performance testing should come.
When I run the Jmeter UI from my system and run --> remote start -> select the ip address of the aws server, it gives me connection time out exception.
In Logs am getting :
java.net.ConnectException: Connection timed out: connect
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source)
at sun.rmi.server.UnicastRef.newCall(Unknown Source)
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
at java.rmi.Naming.lookup(Unknown Source)
at org.apache.jmeter.engine.ClientJMeterEngine.getEngine(ClientJMeterEngine.java:54)
at org.apache.jmeter.engine.ClientJMeterEngine.<init>(ClientJMeterEngine.java:67)
at org.apache.jmeter.engine.DistributedRunner.createEngine(DistributedRunner.java:237)
at org.apache.jmeter.engine.DistributedRunner.getClientEngine(DistributedRunner.java:213)
at org.apache.jmeter.engine.DistributedRunner.init(DistributedRunner.java:93)
at org.apache.jmeter.gui.action.RemoteStart.doAction(RemoteStart.java:77)
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(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(Unknown Source)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(Unknown Source)
There is some configuration which has not been correctly done I believe. How can I check and what all changes should I make to run the test scripts.
Looks like network/firewall issue. Master & slaves should be in same subnet. If possible, you could create another instance in AWS and make it as a master. Ensure that jmeter master, slaves are able to talk to each other.
You might be behind the firewall. You can access AWS. But AWS can not access your machine/or the application behind the firewall.
Check if you are able to telnet through the specific port.
check AWS inbound/outbound rules.
If you use AWS, I would suggest you to use dokcer + rancherOS - It makes my life much easier in jmeter infrastructure setup.
http://www.testautomationguru.com/jmeter-distributed-load-testing-using-docker-rancheros-in-cloud/

Resources