2017-01-24 5 views
0

Ich versuche, einen AWS-Server für Leistungstests von APIs einzurichten, wo die Protokolle eingehen werden. Ich habe Java und Jmeter auf diesem Server installiert. Der Anwendungsserver ist anders, d. H. Test.server.com:8080 Der aws-Server unterscheidet sich mit einer anderen IP-Adresse. Die Jmeter GUI ist auf meinem Laptop installiert.JMeter - Ausnahmebedingung während der Ausführung von JMeter über GUI

In meinem System im Apache Jmeter -> bin-Ordner -> jmeter.properties, habe ich remote_hosts als IP-Adresse des AWS-Servers definiert, wo die Protokolle angezeigt werden sollen. Und server.rmi.localport = 50000

Ich habe keine Änderungen in der Datei jmeter.properties vorgenommen, die auf dem Server aws installiert ist, auf dem die Protokolle des Leistungstests angezeigt werden sollen.

Wenn ich die Jmeter UI von meinem System aus ausführen und -> Remote Start -> die IP-Adresse des AWS-Servers wählen, gibt es eine Verbindung Timeout Ausnahme.

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) 

Es gibt einige Konfiguration, die nicht korrekt getan wurde, glaube ich. Wie kann ich überprüfen und welche Änderungen ich vornehmen soll, um die Testskripte auszuführen?

+0

Wer kann das beantworten? – Maverick

Antwort

0

Sieht aus wie Netzwerk/Firewall-Problem. Master & Slaves sollten im selben Subnetz sein. Wenn möglich, können Sie in AWS eine weitere Instanz erstellen und als Master festlegen. Stellen Sie sicher, dass jmeter Master, Slaves miteinander kommunizieren können.

  • Sie könnten hinter der Firewall sein. Sie können auf AWS zugreifen. AWS kann jedoch nicht auf Ihren Computer/die Anwendung hinter der Firewall zugreifen.
  • Überprüfen Sie, ob Sie über den spezifischen Port telnet können.
  • AWS eingehenden/ausgehenden Regeln überprüfen.

enter image description here

Wenn Sie AWS verwenden, würde ich vorschlagen, dass Sie dokcer + rancheros verwenden - Es ist mein Leben viel einfacher Einrichtung in jmeter Infrastruktur macht.

http://www.testautomationguru.com/jmeter-distributed-load-testing-using-docker-rancheros-in-cloud/

Verwandte Themen