问题描述
我正在两个 Windows 虚拟机中使用 jmeter 5.4.1 设置分布式测试。 在从机上启动 jmeter 服务器。 jmeter.properties 文件中的以下更改(主从)
server.rmi.ssl.disable=true
在 master 中添加了 slave 机器 ip 并从 GUI 模式运行测试。获取连接被拒绝错误:
ERROR o.a.j.e.distributedRunner:无法在以下位置创建引擎 192.168.xxx.xx java.rmi.ConnectException:连接拒绝主机:192.168.xxx.xx;嵌套异常是:java.net.ConnectException:连接超时:连接在 sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:623) ~[?:?] 在 sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:209) ~[?:?] 在 sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:196) ~[?:?] 在 sun.rmi.server.UnicastRef.newCall(UnicastRef.java:343) ~[?:?] 在 sun.rmi.registry.RegistryImpl_Stub.lookup(RegistryImpl_Stub.java:116) ~[?:?] 在 org.apache.jmeter.engine.ClientJMeterEngine.getEngine(ClientJMeterEngine.java:71) ~[ApacheJMeter_core.jar:5.4.1] 在 org.apache.jmeter.engine.ClientJMeterEngine.(ClientJMeterEngine.java:84) ~[ApacheJMeter_core.jar:5.4.1] 在 org.apache.jmeter.engine.distributedRunner.createEngine(distributedRunner.java:243) ~[ApacheJMeter_core.jar:5.4.1] 在 org.apache.jmeter.engine.distributedRunner.getClientEngine(distributedRunner.java:220) ~[ApacheJMeter_core.jar:5.4.1] 在 org.apache.jmeter.engine.distributedRunner.init(distributedRunner.java:92) ~[ApacheJMeter_core.jar:5.4.1] 在 org.apache.jmeter.gui.action.RemoteStart.doAction(RemoteStart.java:79) ~[ApacheJMeter_core.jar:5.4.1] 在 org.apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.java:87) ~[ApacheJMeter_core.jar:5.4.1] 在 org.apache.jmeter.gui.action.ActionRouter.lambda$actionPerformed$0(ActionRouter.java:69) ~[ApacheJMeter_core.jar:5.4.1] 在 java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:316) ~[?:?] 在 java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) ~[?:?] 在 java.awt.EventQueue$4.run(EventQueue.java:721) ~[?:?] 在 java.awt.EventQueue$4.run(EventQueue.java:715) ~[?:?] at java.security.AccessController.doPrivileged(AccessController.java:391) [?:?] 在 java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) [?:?] 在 java.awt.EventQueue.dispatchEvent(EventQueue.java:740) [?:?] 在 java.awt.EventdispatchThread.pumpOneEventForFilters(EventdispatchThread.java:203) [?:?] 在 java.awt.EventdispatchThread.pumpEventsForFilter(EventdispatchThread.java:124) [?:?] 在 java.awt.EventdispatchThread.pumpEventsForHierarchy(EventdispatchThread.java:113) [?:?] 在 java.awt.EventdispatchThread.pumpEvents(EventdispatchThread.java:109) [?:?] 在 java.awt.EventdispatchThread.pumpEvents(EventdispatchThread.java:101) [?:?] 在 java.awt.EventdispatchThread.run(EventdispatchThread.java:90) [?:?] 引起:java.net.ConnectException:连接超时:连接 在 sun.nio.ch.Net.connect0(Native Method) ~[?:?] 在 sun.nio.ch.Net.connect(Net.java:576) ~[?:?] 在 sun.nio.ch.Net.connect(Net.java:565) ~[?:?] 在 sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:588) ~[?:?] at java.net.socksSocketImpl.connect(SocksSocketImpl.java:333) ~[?:?] at java.net.socket.connect(Socket.java:645) ~[?:?] 在 java.net.socket.connect(Socket.java:595) ~[?:?] at java.net.socket.(Socket.java:519) ~[?:?] 在 java.net.socket.(Socket.java:293) ~[?:?] 在 sun.rmi.transport.tcp.TCPDirectSocketFactory.createSocket(TCPDirectSocketFactory.java:40) ~[?:?] 在 sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:617) ~[?:?]
解决方法
首先,你的一主一从的“架构”没有任何意义,因为你只有一个负载生成器,如果没有进一步扩展的计划 - 你可以只run your JMeter test in command-line non-GUI mode和就是这样。
但是,如果您想添加更多从属设备,请确保
- 两台机器在同一个 subnet 中并且可以相互到达(或者设置适当的路由)
- 以下端口为 open in Windows Firewall :
- 端口
1099
(或任何 SERVER_PORT) - 您定义为
server.rmi.localport
的端口 - 您定义为
client.rmi.localport
的端口
- 端口
- 您通过
jmeter-server.bat
命令启动了从站
更多信息: