0
votes

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.

1
Anyone who can answer this ?Maverick

1 Answers

0
votes

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.

enter image description here

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/