1

I am performing a distributed testing and I have followed below steps.

  1. Jmeter version on both Master and slave is same.

  2. Java version is same on Master and slave.

  3. Both the system are in same subnet, I can ping to slave from my master.

  4. rmi key is created at master and copied to slave in bin folder.

  5. slave IP address is added in remote_hosts

When I run simple test (using jmx) in non GUI mode from master to slave, I can see

Starting the test on host 10.1.11.85(fake ip here just for example)

Finished the test on host 10.1.11.85(fake ip here just for example)

On My master machine I can see

F:\Performance Testing\apache-jmeter-5.1.1\apache-jmeter-5.1.1\bin>jmeter.bat -n -R 10.1.56.65 -t 

"F:\Performance Testing\Linkedin.jmx" -f -l "F:\Performance Testing\LoadTestData.csv" -e -o 

"F:\Performance Testing\LoadTestData"

Picked up _JAVA_OPTIONS: -Xms512m -Xmx4096m

Creating summariser <summary>

Creating summariser <summary>

Created the tree successfully using F:\Performance Testing\Linkedin.jmx

Configuring remote engine: 10.1.56.65(Fake ip here for example)

Starting remote engines

Starting the test @ Mon Sep 30 14:23:40 CEST 2019

Remote engines have been started

Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445

And my script stop here even though I wait for 2hr its still same.

Script is not tiding up and not getting result.

When I did bit investigation and open jmeter-server.log file on slave machine I see:

java.rmi.ConnectException: Connection refused to host: 10.1.56.65; nested exception is: java.net.ConnectException: Connection timed out: connect at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source) ~[?:1.8.0_211] at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source) ~[?:1.8.0_211] at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source) ~[?:1.8.0_211] at sun.rmi.server.UnicastRef.invoke(Unknown Source) ~[?:1.8.0_211] at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(Unknown Source) ~[?:1.8.0_211] at java.rmi.server.RemoteObjectInvocationHandler.invoke(Unknown Source) ~[?:1.8.0_211] at com.sun.proxy.$Proxy21.testStarted(Unknown Source) ~[?:?] at org.apache.jmeter.samplers.RemoteListenerWrapper.testStarted(RemoteListenerWrapper.java:79) [ApacheJMeter_core.jar:5.1.1 r1855137] at org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfStart(StandardJMeterEngine.java:208) [ApacheJMeter_core.jar:5.1.1 r1855137] at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:381) [ApacheJMeter_core.jar:5.1.1 r1855137] at java.lang.Thread.run(Unknown Source) [?:1.8.0_211] Caused by: java.net.ConnectException: Connection timed out: connect at java.net.DualStackPlainSocketImpl.connect0(Native Method) ~[?:1.8.0_211] at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) ~[?:1.8.0_211] at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) ~[?:1.8.0_211] at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) ~[?:1.8.0_211] at java.net.AbstractPlainSocketImpl.connect(Unknown Source) ~[?:1.8.0_211] at java.net.PlainSocketImpl.connect(Unknown Source) ~[?:1.8.0_211] at java.net.SocksSocketImpl.connect(Unknown Source) ~[?:1.8.0_211] at java.net.Socket.connect(Unknown Source) ~[?:1.8.0_211] at sun.security.ssl.SSLSocketImpl.connect(Unknown Source) ~[?:1.8.0_211] at sun.security.ssl.SSLSocketImpl.(Unknown Source) ~[?:1.8.0_211] at sun.security.ssl.SSLSocketFactoryImpl.createSocket(Unknown Source) ~[?:1.8.0_211] at org.apache.jmeter.rmi.SSLRMIClientSocketFactory.createSocket(SSLRMIClientSocketFactory.java:118) ~[ApacheJMeter_core.jar:5.1.1 r1855137] ... 11 more

I think so slave is not able to send result back to Master and getting connection refuse, how can I solve this? Looking forward to hearing from you. (edited)

Milo
  • 3,365
  • 9
  • 30
  • 44
Pankaj
  • 21
  • 1
  • 2

1 Answers1

0

The fact you can ping the slave doesn't necessarily mean JMeter can communicate with it over RMI because your operating system firewall can allow ICMP traffic but block the ports JMeter is using.

By default JMeter uses port 1099 so double check that incoming connections are allowed. If not - either change the server.port property to use the port which is free and allowed or create a firewall rule unblocking the traffic.

Dmitri T
  • 159,985
  • 5
  • 83
  • 133