【发布时间】:2018-11-07 13:29:07
【问题描述】:
我正在使用 OpenJDK8 运行 JMeter 5.0,但是当我尝试在主从模式下运行它时出现错误。从站开始使用
./jmeter-server -Djava.rmi.server.hostname=<slave_ip>
Master 使用
启动./jmeter -n -t /home/user/test.jmx -R <slave_ip>
我在 Master 机器上收到以下错误:
Creating summariser <summary>
Created the tree successfully using /home/user/test.jmx
Configuring remote engine: <slave_ip>
Starting remote engines
Starting the test @ Tue Nov 06 10:34:00 EST 2018 (1541518440058)
Error in rconfigure() method java.rmi.MarshalException: error marshalling arguments; nested exception is:
java.io.NotSerializableException: org.apache.jmeter.threads.RemoteThreadsListenerTestElement
Remote engines have been started
Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445
测试脚本test.jmx 只是 google.com 的 GET,不使用任何第三方插件。
我正在运行 Ubuntu 16.04.4 LTS,JMeter 是在 JMeter 的网站上获得的。
有人遇到过这个问题并解决了吗?
注意:我看到了一些与此相关的帖子,但它们已过时并且解决方案不起作用。
编辑 1: 从站和主站都使用版本 5.0 r18409351。我也尝试在 1 台主机上同时运行,但我遇到了同样的错误。
编辑 2:
查看 jmeter.log,我注意到它正在尝试连接到 localhost,即使我在 jmeter.properties 上有 remote_host=<slave_ip>。我添加了
-Djava.rmi.server.hostname=<slave_ip> 到大师的命令行。现在我在jmeter.log 上得到以下异常
2018-11-06 16:20:12,963 INFO o.a.j.r.RmiUtils: Local IP address=<slave_ip>
2018-11-06 16:20:12,965 INFO o.a.j.s.SampleEvent: List of sample_variables: []
2018-11-06 16:20:12,967 ERROR o.a.j.e.ConvertListeners: RemoteException occurred while replacing Remotable item.
java.rmi.server.ExportException: Listen failed on port: 0; nested exception is:
java.io.IOException: Could not bind to /<slave_ip> using port 0
at sun.rmi.transport.tcp.TCPTransport.listen(TCPTransport.java:348) ~[?:1.8.0_181]
at sun.rmi.transport.tcp.TCPTransport.exportObject(TCPTransport.java:254) ~[?:1.8.0_181]
at sun.rmi.transport.tcp.TCPEndpoint.exportObject(TCPEndpoint.java:411) ~[?:1.8.0_181]
at sun.rmi.transport.LiveRef.exportObject(LiveRef.java:147) ~[?:1.8.0_181]
at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:236) ~[?:1.8.0_181]
at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.java:383) ~[?:1.8.0_181]
at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.java:346) ~[?:1.8.0_181]
at java.rmi.server.UnicastRemoteObject.<init>(UnicastRemoteObject.java:225) ~[?:1.8.0_181]
at org.apache.jmeter.samplers.RemoteSampleListenerImpl.<init>(RemoteSampleListenerImpl.java:44) ~[ApacheJMeter_core.jar:5.0 r1840935]
at org.apache.jmeter.engine.ConvertListeners.addNode(ConvertListeners.java:78) [ApacheJMeter_core.jar:5.0 r1840935]
at org.apache.jorphan.collections.HashTree.traverse(HashTree.java:976) [jorphan.jar:5.0 r1840935]
at org.apache.jmeter.engine.ClientJMeterEngine.runTest(ClientJMeterEngine.java:135) [ApacheJMeter_core.jar:5.0 r1840935]
at org.apache.jmeter.engine.DistributedRunner.start(DistributedRunner.java:132) [ApacheJMeter_core.jar:5.0 r1840935]
【问题讨论】:
-
slave 是否有完全相同的 jmeter 版本?
-
@user7294900 确实如此,两者都有版本 5.0 r1840935。我也尝试在同一台主机上运行两者,但我遇到了同样的问题。
-
你能分享你的测试计划吗?我尝试了一个简单的测试计划和分布式测试,但我没有重现,所以一定有一些条件。还提供 jmeter.log 和 jmeter-server.log 。谢谢
-
@UBIKLOADPACK 更新了问题
-
谢谢,但您的链接已损坏,我收到 404