远程测试Jmeter-无法查看结果-错误:未定义系统属性'java.rmi.server.hostname'

时间:2019-11-17 18:06:46

标签: jmeter distributed-testing

我目前正在使用Jmeter v5.2进行远程测试,并尝试连接到从站。遵循Jmeter用户手册中的所有步骤。最后,我在我的主机上看不到结果,并且我得到的错误率低于此值。

System property 'java.rmi.server.hostname' is not defined, using localHost address

我相信我已经检查过我身边是否有任何错误,例如

  1. 两者都在相同版本的Jmeter和Windows上运行
  2. 确保端口上没有监听

但还没有运气。我有什么想念的吗?同样在服务器端(从站),我得到如下消息。 enter image description here

看起来好像连接成功。但是我看不到任何结果。
以下是jmeter日志

    Configuring remote engine: slave_ipaddrss
2019-11-18 09:21:16,108 INFO o.a.j.e.DistributedRunner: Starting distributed test with remote engines: [slave_ipaddrss] @ Mon Nov 18 09:21:16 EST 2019 (1574086876108)
2019-11-18 09:21:16,109 INFO o.a.j.e.ClientJMeterEngine: running clientengine run method
2019-11-18 09:21:16,109 INFO o.a.j.r.RmiUtils: System property 'java.rmi.server.hostname' is not defined, using localHost address
2019-11-18 09:21:16,109 INFO o.a.j.r.RmiUtils: Local IP address=local_ipaddrss
2019-11-18 09:21:16,114 INFO o.a.j.r.SSLRMIServerSocketFactory: Created SSLSocket: [SSL: ServerSocket[addr=localhostname/local_ipaddrss,localport=8152]]
2019-11-18 09:21:16,114 INFO o.a.j.s.BatchSampleSender: Using batching (client settings) for this run. Thresholds: num=100, time=60000
2019-11-18 09:21:16,114 INFO o.a.j.s.DataStrippingSampleSender: Using DataStrippingSampleSender for this run
2019-11-18 09:21:16,115 INFO o.a.j.r.RmiUtils: System property 'java.rmi.server.hostname' is not defined, using localHost address
2019-11-18 09:21:16,115 INFO o.a.j.r.RmiUtils: Local IP address=local_ipaddrss
2019-11-18 09:21:16,120 INFO o.a.j.r.SSLRMIServerSocketFactory: Created SSLSocket: [SSL: ServerSocket[addr=localhostname/local_ipaddrss,localport=8153]]
2019-11-18 09:21:16,121 INFO o.a.j.s.BatchSampleSender: Using batching (client settings) for this run. Thresholds: num=100, time=60000
2019-11-18 09:21:16,121 INFO o.a.j.s.DataStrippingSampleSender: Using DataStrippingSampleSender for this run
2019-11-18 09:21:16,121 INFO o.a.j.r.RmiUtils: System property 'java.rmi.server.hostname' is not defined, using localHost address
2019-11-18 09:21:16,121 INFO o.a.j.r.RmiUtils: Local IP address=local_ipaddrss
2019-11-18 09:21:16,126 INFO o.a.j.r.SSLRMIServerSocketFactory: Created SSLSocket: [SSL: ServerSocket[addr=localhostname/local_ipaddrss,localport=8154]]
2019-11-18 09:21:16,128 INFO o.a.j.r.RmiUtils: System property 'java.rmi.server.hostname' is not defined, using localHost address
2019-11-18 09:21:16,128 INFO o.a.j.r.RmiUtils: Local IP address=local_ipaddrss
2019-11-18 09:21:16,133 INFO o.a.j.r.SSLRMIServerSocketFactory: Created SSLSocket: [SSL: ServerSocket[addr=localhostname/local_ipaddrss,localport=8155]]
2019-11-18 09:21:16,408 INFO o.a.j.e.ClientJMeterEngine: sent test to slave_ipaddrss basedir='.'
2019-11-18 09:21:16,409 INFO o.a.j.e.ClientJMeterEngine: Sending properties {}
2019-11-18 09:21:16,414 INFO o.a.j.e.ClientJMeterEngine: sent run command to slave_ipaddrss
2019-11-18 09:21:16,414 INFO o.a.j.e.DistributedRunner: Remote engines have been started:[slave_ipaddrss]
2019-11-18 09:21:16,696 INFO o.a.j.g.u.JMeterMenuBar: setRunning(true, slave_ipaddrss)
2019-11-18 09:21:17,443 INFO o.a.j.g.u.JMeterMenuBar: setRunning(false, slave_ipaddrss)

谢谢。

2 个答案:

答案 0 :(得分:0)

首先检查JMeter从属计算机上的jmeter-server.log文件,以防万一发生故障时该文件应包含足够的故障排除信息,以便您能够深入研究问题。

第二,查看jmeter-server file,其中有一个stanza,看起来像:

# If the client fails with:
# ERROR - jmeter.engine.ClientJMeterEngine: java.rmi.ConnectException: Connection refused to host: 127.0.0.1
# then it may be due to the server host returning 127.0.0.1 as its address 

# One way to fix this is to define RMI_HOST_DEF below
#RMI_HOST_DEF=-Djava.rmi.server.hostname=xxx.xxx.xxx.xxx

因此,您可以尝试在JMeter从站侧显式设置RMI server hostname,例如:

jmeter-server.bat -Djava.rmi.server.hostname=10.20.30.40

完成后,您可以像这样启动JMeter master:

jmeter -R10.20.30.40

用JMeter从属计算机的实际IP地址替换10.20.30.40

更多信息:

答案 1 :(得分:0)

我已经通过增加重试次数(默认情况下为1)解决了这个问题。当分布式测试开始时,可​​能有几次尝试初始化远程引擎的操作
您可以在jmeter.properties文件中找到并编辑“ client.tries”,并取消注释为

client.tries= 3

我还使用以下命令在从属计算机中启动jmeter服务器。

jmeter-server.bat -Djava.rmi.server.hostname=local ipaddress

这帮助我将rmi服务器主机名明确定义为本地地址。