我正在执行分布式测试,并且按照以下步骤操作。
主站和从站上的Jmeter版本相同。
主服务器和从属服务器上的Java版本相同。
两个系统都在同一子网中,我可以从主服务器ping到从服务器。
rmi密钥是在主服务器上创建的,并复制到bin文件夹中的从属服务器上。
从属IP地址已添加到remote_hosts
当我在非GUI模式下从主到从运行简单测试(使用jmx)时,我可以看到
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)
在我的主计算机上,我可以看到
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
即使我等待2个小时,我的脚本也会在此处停止。
脚本没有整理好,没有得到结果。
当我进行位调查并在从属计算机上打开jmeter-server.log
文件时,我看到:
java.rmi.ConnectException:连接拒绝托管:10.1.56.65; 嵌套的异常是: java.net.ConnectException:连接超时:connect 在sun.rmi.transport.tcp.TCPEndpoint.newSocket(未知来源)〜[?:1.8.0_211] 在sun.rmi.transport.tcp.TCPChannel.createConnection(未知来源)〜[?:1.8.0_211] 在sun.rmi.transport.tcp.TCPChannel.newConnection(未知来源)〜[?:1.8.0_211] 在sun.rmi.server.UnicastRef.invoke(未知来源)〜[?:1.8.0_211] 在java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(未知 来源)〜[?:1.8.0_211] 在java.rmi.server.RemoteObjectInvocationHandler.invoke(未知来源)〜[?:1.8.0_211] 在com.sun.proxy。$ Proxy21.testStarted(未知来源)〜[?:?] 在org.apache.jmeter.samplers.RemoteListenerWrapper.testStarted(RemoteListenerWrapper.java:79) [ApacheJMeter_core.jar:5.1.1 r1855137] 在org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfStart(StandardJMeterEngine.java:208)处 [ApacheJMeter_core.jar:5.1.1 r1855137] 在org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:381) [ApacheJMeter_core.jar:5.1.1 r1855137] 在java.lang.Thread.run(未知来源)[?: 1.8.0_211]原因:java.net.ConnectException:连接超时:connect 在java.net.DualStackPlainSocketImpl.connect0(本机方法)〜[?:1.8.0_211] 在java.net.DualStackPlainSocketImpl.socketConnect(未知源)〜[?:1.8.0_211] 在java.net.AbstractPlainSocketImpl.doConnect(未知源)〜[?:1.8.0_211] 在java.net.AbstractPlainSocketImpl.connectToAddress(未知来源)〜[?:1.8.0_211] 在java.net.AbstractPlainSocketImpl.connect(未知源)〜[?:1.8.0_211] 在java.net.PlainSocketImpl.connect(未知来源)〜[?:1.8.0_211] 在java.net.SocksSocketImpl.connect(未知源)〜[?:1.8.0_211] 在java.net.Socket.connect(未知来源)〜[?:1.8.0_211] 在sun.security.ssl.SSLSocketImpl.connect(未知来源)〜[?:1.8.0_211] 在sun.security.ssl.SSLSocketImpl。(未知来源)〜[?:1.8.0_211] 在sun.security.ssl.SSLSocketFactoryImpl.createSocket(未知来源)〜[?:1.8.0_211] 在org.apache.jmeter.rmi.SSLRMIClientSocketFactory.createSocket(SSLRMIClientSocketFactory.java:118) 〜[ApacheJMeter_core.jar:5.1.1 r1855137] ...还有11个
我认为从站无法将结果发送回主机并拒绝连接,我该如何解决? 期待您的回音。 (已编辑)
答案 0 :(得分:0)
您可以ping通从属设备的事实并不一定意味着JMeter可以通过RMI与它通信,因为您的操作系统防火墙可以允许ICMP流量但阻止JMeter使用的端口。
默认情况下,JMeter使用port 1099,因此请仔细检查是否允许传入连接。如果不是,请change the server.port
property使用免费且允许的端口,或者创建防火墙规则以解除流量阻塞。