【问题标题】:NotSerializableException: RemoteThreadsListenerTestElement with JMeter 5 on JDK 8NotSerializableException:在 JDK 8 上带有 JMeter 5 的 RemoteThreadsListenerTestElement
【发布时间】: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=&lt;slave_ip&gt;。我添加了 -Djava.rmi.server.hostname=&lt;slave_ip&gt; 到大师的命令行。现在我在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]

JMeter Script

【问题讨论】:

  • slave 是否有完全相同的 jmeter 版本?
  • @user7294900 确实如此,两者都有版本 5.0 r1840935。我也尝试在同一台主机上运行两者,但我遇到了同样的问题。
  • 你能分享你的测试计划吗?我尝试了一个简单的测试计划和分布式测试,但我没有重现,所以一定有一些条件。还提供 jmeter.log 和 jmeter-server.log 。谢谢
  • @UBIKLOADPACK 更新了问题
  • 谢谢,但您的链接已损坏,我收到 404

标签: java-8 jmeter


【解决方案1】:

首先检查您是否为客户端和服务器使用相同版本的 Java。

使用您的测试计划,它适用于 Oracle JDK 8u161:

使用 IP 192.168.0.33 运行服务器:

./jmeter -Djava.rmi.server.hostname=192.168.0.33 -Dserver_port=5000 -s -j jmeter-server.log

在客户端:

./jmeter -n -t /data/jmeter/testplan.jmx -R192.168.0.33:5000

【讨论】:

  • 是的,都是同一个版本
  • 我跑了./jmeter -n -t /data/jmeter/testplan.jmx -R&lt;slave_ip&gt;:1099,但我还是得到了Could not bind to /&lt;slave_ip&gt; using port 0
【解决方案2】:

看来你发送到错误的端口,这是configurable所以用端口作为IP调用

 remote_host=<slave_ip>:1099

默认情况下,JMeter 使用标准 RMI 端口 1099。

在客户端,更新 remote_hosts 属性以包含新的远程主机:端口设置

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-28
    • 1970-01-01
    • 2016-06-28
    • 2014-07-19
    相关资源
    最近更新 更多