首页 > 解决方案 > 无法使用 SSL RMI 和在 Linux 上定义的端口使用 JMeter 5.4.1 运行分布式测试

问题描述

我在所有 Linux 机器上使用 openjdk 11 运行 Jmeter 5.4.1。我尝试使用 ubuntu 18.04.5、ubuntu 20.04.2 和 Debian 10,它们都有相同的问题。我能够在指定端口或启用 RMI SSL 的情况下运行测试,但不能同时运行。一切正常,直到我设置 client.rmi.localport 然后它有错误。目前我没有启用防火墙,因为我试图消除障碍。在 Jmeter 运行之前,指定端口上没有任何内容(1099、4888、5888、5889、5900 是免费且开放的)。这些是我对user.properties文件所做的更改。

客户(主)

remote_hosts=172.xx.xxx.xx1,172.xx.xx.xx2
server.rmi.ssl.keystore.file=/home/user/rmi_keystore.jks
client.rmi.localport=5888

服务器(从)

server.rmi.ssl.keystore.file=/home/user/rmi_keystore.jks
server.rmi.localport=4888

/etc/hosts 文件在每台机器上看起来像这样,只是更改了最后一个 ip 编号和主机名以反映这一点。

127.0.0.1       localhost
127.0.1.1       xxx-l1.xxx.xxxx.xxx  xxx-l1
172.xx.xxx.xx1  xxx-l1.xxx.xxxx.xxx  xxx-l1

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

目前正试图让它在 GUI 或命令行中工作,但主要是使用 GUI 进行测试。我尝试使用以下任一方法启动客户端并运行测试。

./jmeter -Djava.rmi.server.hostname=172.xx.xxx.xx8

JVM_ARGS="-Xms1024m -Xmx4096m" ./jmeter -Djava.rmi.server.hostname=172.xx.xxx.xx8

如果它是一个仅在 gui 中访问 google.com 的简单测试,我可以运行一次分布式测试以成功,然后在重新运行测试时它在客户端日志中有这些错误,并且在服务器日志中没有生成任何内容。如果它是一个更复杂的测试,或者只是在第一次运行时将某些内容作为视图结果树包含在内,它将显示错误。命令行也首次运行失败。我看到的另一个日志说 Caused by: java.net.SocketException: Broken pipe (Write failed) inplace of the java.io.NotSerializableException 但仍显示相同的端口消息。

2021-07-09 09:57:17,008 INFO o.a.j.s.FileServer: Default base='/home/user/Desktop/apache-jmeter-5.4.1/bin'
2021-07-09 09:57:17,011 INFO o.a.j.g.a.Load: Loading file: /home/user/Desktop/Summer2021/basictest.jmx
2021-07-09 09:57:17,012 INFO o.a.j.s.FileServer: Set new base='/home/user/Desktop/Summer2021'
2021-07-09 09:57:17,208 INFO o.a.j.s.SaveService: Testplan (JMX) version: 2.2. Testlog (JTL) version: 2.2
2021-07-09 09:57:17,226 INFO o.a.j.s.SaveService: Using SaveService properties version 5.0
2021-07-09 09:57:17,228 INFO o.a.j.s.SaveService: Using SaveService properties file encoding UTF-8
2021-07-09 09:57:17,230 INFO o.a.j.s.SaveService: Loading file: /home/user/Desktop/Summer2021/basictest.jmx
2021-07-09 09:57:17,255 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for text/html is org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser
2021-07-09 09:57:17,255 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for application/xhtml+xml is org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser
2021-07-09 09:57:17,255 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for application/xml is org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser
2021-07-09 09:57:17,255 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for text/xml is org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser
2021-07-09 09:57:17,255 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for text/vnd.wap.wml is org.apache.jmeter.protocol.http.parser.RegexpHTMLParser
2021-07-09 09:57:17,255 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for text/css is org.apache.jmeter.protocol.http.parser.CssParser
2021-07-09 09:57:17,383 INFO o.a.j.s.FileServer: Set new base='/home/user/Desktop/Summer2021'
2021-07-09 09:57:23,234 INFO o.a.j.e.DistributedRunner: Configuring remote engine: 172.xx.xxx.xx1
2021-07-09 09:57:24,033 INFO o.a.j.e.DistributedRunner: Starting distributed test with remote engines: [172.xx.xxx.xx1] @ Fri Jul 09 09:57:24 MDT 2021 (1625846244032)
2021-07-09 09:57:24,033 INFO o.a.j.e.ClientJMeterEngine: running clientengine run method
2021-07-09 09:57:24,034 INFO o.a.j.e.u.CompoundVariable: Note: Function class names must contain the string: '.functions.'
2021-07-09 09:57:24,034 INFO o.a.j.e.u.CompoundVariable: Note: Function class names must not contain the string: '.gui.'
2021-07-09 09:57:24,254 INFO o.a.j.r.RmiUtils: Resolving by name the value of System property 'java.rmi.server.hostname': 172.xx.xxx.xx8
2021-07-09 09:57:24,254 INFO o.a.j.r.RmiUtils: Local IP address=172.xx.xxx.xx8
2021-07-09 09:57:24,256 INFO o.a.j.s.SampleEvent: List of sample_variables: []
2021-07-09 09:57:24,452 INFO o.a.j.r.SSLRMIServerSocketFactory: Created SSLSocket: [SSL: ServerSocket[addr=/172.xx.xxx.xx8,localport=5890]]
2021-07-09 09:57:24,455 INFO o.a.j.r.RmiUtils: Resolving by name the value of System property 'java.rmi.server.hostname': 172.xx.xxx.xx8
2021-07-09 09:57:24,455 INFO o.a.j.r.RmiUtils: Local IP address=172.xx.xxx.xx8
2021-07-09 09:57:24,655 INFO o.a.j.r.SSLRMIServerSocketFactory: Created SSLSocket: [SSL: ServerSocket[addr=/172.xx.xxx.xx8,localport=5889]]
2021-07-09 09:57:25,209 INFO o.a.j.e.ClientJMeterEngine: sent test to 172.xx.xxx.xx1 basedir='.'
2021-07-09 09:57:25,209 INFO o.a.j.e.ClientJMeterEngine: Sending properties {}
2021-07-09 09:57:25,212 INFO o.a.j.e.ClientJMeterEngine: sent run command to 172.xx.xxx.xx1
2021-07-09 09:57:25,213 INFO o.a.j.e.DistributedRunner: Remote engines have been started:[172.xx.xxx.xx1]
2021-07-09 09:57:25,214 INFO o.a.j.g.u.JMeterMenuBar: setRunning(true, 172.xx.xxx.xx1)
2021-07-09 09:57:25,445 INFO o.a.j.g.u.JMeterMenuBar: setRunning(false, 172.xx.xxx.xx1)
2021-07-09 09:57:29,906 INFO o.a.j.e.DistributedRunner: Configuring remote engine: 172.xx.xxx.xx1
2021-07-09 09:57:30,347 INFO o.a.j.e.DistributedRunner: Starting distributed test with remote engines: [172.xx.xxx.xx1] @ Fri Jul 09 09:57:30 MDT 2021 (1625846250347)
2021-07-09 09:57:30,347 INFO o.a.j.e.ClientJMeterEngine: running clientengine run method
2021-07-09 09:57:30,348 INFO o.a.j.r.RmiUtils: Resolving by name the value of System property 'java.rmi.server.hostname': 172.xx.xxx.xx8
2021-07-09 09:57:30,348 INFO o.a.j.r.RmiUtils: Local IP address=172.xx.xxx.xx8
2021-07-09 09:57:30,550 ERROR o.a.j.e.ConvertListeners: RemoteException occurred while replacing Remotable item.
java.rmi.server.ExportException: Listen failed on port: 5890; nested exception is: 
    java.io.IOException: Could not bind to /172.xx.xxx.xx8 using port 5890
    at sun.rmi.transport.tcp.TCPTransport.listen(TCPTransport.java:337) ~[?:?]
    at sun.rmi.transport.tcp.TCPTransport.exportObject(TCPTransport.java:243) ~[?:?]
    at sun.rmi.transport.tcp.TCPEndpoint.exportObject(TCPEndpoint.java:412) ~[?:?]
    at sun.rmi.transport.LiveRef.exportObject(LiveRef.java:147) ~[?:?]
    at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:234) ~[?:?]
    at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.java:470) ~[?:?]
    at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.java:381) ~[?:?]
    at java.rmi.server.UnicastRemoteObject.<init>(UnicastRemoteObject.java:260) ~[?:?]
    at org.apache.jmeter.samplers.RemoteSampleListenerImpl.<init>(RemoteSampleListenerImpl.java:43) ~[ApacheJMeter_core.jar:5.4.1]
    at org.apache.jmeter.engine.ConvertListeners.addNode(ConvertListeners.java:77) ~[ApacheJMeter_core.jar:5.4.1]
    at org.apache.jorphan.collections.HashTree.traverse(HashTree.java:975) ~[jorphan.jar:5.4.1]
    at org.apache.jmeter.engine.ClientJMeterEngine.runTest(ClientJMeterEngine.java:136) ~[ApacheJMeter_core.jar:5.4.1]
    at org.apache.jmeter.engine.DistributedRunner.start(DistributedRunner.java:134) ~[ApacheJMeter_core.jar:5.4.1]
    at org.apache.jmeter.gui.action.RemoteStart.doAction(RemoteStart.java:80) ~[ApacheJMeter_core.jar:5.4.1]
    at org.apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.java:87) ~[ApacheJMeter_core.jar:5.4.1]
    at org.apache.jmeter.gui.action.ActionRouter.lambda$actionPerformed$0(ActionRouter.java:69) ~[ApacheJMeter_core.jar:5.4.1]
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) [?:?]
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) [?:?]
    at java.awt.EventQueue$4.run(EventQueue.java:721) [?:?]
    at java.awt.EventQueue$4.run(EventQueue.java:715) [?:?]
    at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) [?:?]
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:740) [?:?]
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) [?:?]
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) [?:?]
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) [?:?]
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) [?:?]
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) [?:?]
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) [?:?]
Caused by: java.io.IOException: Could not bind to /172.xx.xxx.xx8 using port 5890
    at org.apache.jmeter.rmi.SSLRMIServerSocketFactory.createServerSocket(SSLRMIServerSocketFactory.java:138) ~[ApacheJMeter_core.jar:5.4.1]
    at sun.rmi.transport.tcp.TCPEndpoint.newServerSocket(TCPEndpoint.java:670) ~[?:?]
    at sun.rmi.transport.tcp.TCPTransport.listen(TCPTransport.java:324) ~[?:?]
    ... 28 more
Caused by: java.net.BindException: Address already in use (Bind failed)
    at java.net.PlainSocketImpl.socketBind(Native Method) ~[?:?]
    at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:436) ~[?:?]
    at java.net.ServerSocket.bind(ServerSocket.java:395) ~[?:?]
    at java.net.ServerSocket.<init>(ServerSocket.java:257) ~[?:?]
    at javax.net.ssl.SSLServerSocket.<init>(SSLServerSocket.java:181) ~[?:?]
    at sun.security.ssl.SSLServerSocketImpl.<init>(SSLServerSocketImpl.java:78) ~[?:?]
    at sun.security.ssl.SSLServerSocketFactoryImpl.createServerSocket(SSLServerSocketFactoryImpl.java:87) ~[?:?]
    at org.apache.jmeter.rmi.SSLRMIServerSocketFactory.createServerSocket(SSLRMIServerSocketFactory.java:136) ~[ApacheJMeter_core.jar:5.4.1]
    at sun.rmi.transport.tcp.TCPEndpoint.newServerSocket(TCPEndpoint.java:670) ~[?:?]
    at sun.rmi.transport.tcp.TCPTransport.listen(TCPTransport.java:324) ~[?:?]
    ... 28 more
2021-07-09 09:57:30,556 INFO o.a.j.r.RmiUtils: Resolving by name the value of System property 'java.rmi.server.hostname': 172.xx.xxx.xx8
2021-07-09 09:57:30,556 INFO o.a.j.r.RmiUtils: Local IP address=172.xx.xxx.xx8
2021-07-09 09:57:30,751 ERROR o.a.j.e.ConvertListeners: Error replacing class org.apache.jmeter.threads.RemoteThreadsListenerTestElement by wrapper: class org.apache.jmeter.threads.RemoteThreadsListenerWrapper
java.rmi.server.ExportException: Listen failed on port: 5889; nested exception is: 
    java.io.IOException: Could not bind to /172.xx.xxx.xx8 using port 5889
    at sun.rmi.transport.tcp.TCPTransport.listen(TCPTransport.java:337) ~[?:?]
    at sun.rmi.transport.tcp.TCPTransport.exportObject(TCPTransport.java:243) ~[?:?]
    at sun.rmi.transport.tcp.TCPEndpoint.exportObject(TCPEndpoint.java:412) ~[?:?]
    at sun.rmi.transport.LiveRef.exportObject(LiveRef.java:147) ~[?:?]
    at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:234) ~[?:?]
    at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.java:470) ~[?:?]
    at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.java:381) ~[?:?]
    at java.rmi.server.UnicastRemoteObject.<init>(UnicastRemoteObject.java:260) ~[?:?]
    at org.apache.jmeter.threads.RemoteThreadsListenerImpl.<init>(RemoteThreadsListenerImpl.java:58) ~[ApacheJMeter_core.jar:5.4.1]
    at org.apache.jmeter.engine.ConvertListeners.addNode(ConvertListeners.java:63) ~[ApacheJMeter_core.jar:5.4.1]
    at org.apache.jorphan.collections.HashTree.traverse(HashTree.java:975) ~[jorphan.jar:5.4.1]
    at org.apache.jmeter.engine.ClientJMeterEngine.runTest(ClientJMeterEngine.java:136) ~[ApacheJMeter_core.jar:5.4.1]
    at org.apache.jmeter.engine.DistributedRunner.start(DistributedRunner.java:134) ~[ApacheJMeter_core.jar:5.4.1]
    at org.apache.jmeter.gui.action.RemoteStart.doAction(RemoteStart.java:80) ~[ApacheJMeter_core.jar:5.4.1]
    at org.apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.java:87) ~[ApacheJMeter_core.jar:5.4.1]
    at org.apache.jmeter.gui.action.ActionRouter.lambda$actionPerformed$0(ActionRouter.java:69) ~[ApacheJMeter_core.jar:5.4.1]
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) [?:?]
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) [?:?]
    at java.awt.EventQueue$4.run(EventQueue.java:721) [?:?]
    at java.awt.EventQueue$4.run(EventQueue.java:715) [?:?]
    at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) [?:?]
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:740) [?:?]
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) [?:?]
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) [?:?]
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) [?:?]
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) [?:?]
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) [?:?]
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) [?:?]
Caused by: java.io.IOException: Could not bind to /172.xx.xxx.xx8 using port 5889
    at org.apache.jmeter.rmi.SSLRMIServerSocketFactory.createServerSocket(SSLRMIServerSocketFactory.java:138) ~[ApacheJMeter_core.jar:5.4.1]
    at sun.rmi.transport.tcp.TCPEndpoint.newServerSocket(TCPEndpoint.java:670) ~[?:?]
    at sun.rmi.transport.tcp.TCPTransport.listen(TCPTransport.java:324) ~[?:?]
    ... 28 more
Caused by: java.net.BindException: Address already in use (Bind failed)
    at java.net.PlainSocketImpl.socketBind(Native Method) ~[?:?]
    at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:436) ~[?:?]
    at java.net.ServerSocket.bind(ServerSocket.java:395) ~[?:?]
    at java.net.ServerSocket.<init>(ServerSocket.java:257) ~[?:?]
    at javax.net.ssl.SSLServerSocket.<init>(SSLServerSocket.java:181) ~[?:?]
    at sun.security.ssl.SSLServerSocketImpl.<init>(SSLServerSocketImpl.java:78) ~[?:?]
    at sun.security.ssl.SSLServerSocketFactoryImpl.createServerSocket(SSLServerSocketFactoryImpl.java:87) ~[?:?]
    at org.apache.jmeter.rmi.SSLRMIServerSocketFactory.createServerSocket(SSLRMIServerSocketFactory.java:136) ~[ApacheJMeter_core.jar:5.4.1]
    at sun.rmi.transport.tcp.TCPEndpoint.newServerSocket(TCPEndpoint.java:670) ~[?:?]
    at sun.rmi.transport.tcp.TCPTransport.listen(TCPTransport.java:324) ~[?:?]
    ... 28 more
2021-07-09 09:57:30,770 ERROR o.a.j.e.ClientJMeterEngine: Error in rconfigure() method
java.rmi.MarshalException: error marshalling arguments; nested exception is: 
    java.io.NotSerializableException: org.apache.jmeter.threads.RemoteThreadsListenerTestElement
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:160) ~[?:?]
    at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:217) ~[?:?]
    at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:162) ~[?:?]
    at com.sun.proxy.$Proxy24.rconfigure(Unknown Source) ~[?:?]
    at org.apache.jmeter.engine.ClientJMeterEngine.runTest(ClientJMeterEngine.java:152) ~[ApacheJMeter_core.jar:5.4.1]
    at org.apache.jmeter.engine.DistributedRunner.start(DistributedRunner.java:134) ~[ApacheJMeter_core.jar:5.4.1]
    at org.apache.jmeter.gui.action.RemoteStart.doAction(RemoteStart.java:80) ~[ApacheJMeter_core.jar:5.4.1]
    at org.apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.java:87) ~[ApacheJMeter_core.jar:5.4.1]
    at org.apache.jmeter.gui.action.ActionRouter.lambda$actionPerformed$0(ActionRouter.java:69) ~[ApacheJMeter_core.jar:5.4.1]
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) [?:?]
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) [?:?]
    at java.awt.EventQueue$4.run(EventQueue.java:721) [?:?]
    at java.awt.EventQueue$4.run(EventQueue.java:715) [?:?]
    at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) [?:?]
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:740) [?:?]
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) [?:?]
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) [?:?]
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) [?:?]
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) [?:?]
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) [?:?]
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) [?:?]
Caused by: java.io.NotSerializableException: org.apache.jmeter.threads.RemoteThreadsListenerTestElement
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1185) ~[?:?]
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:349) ~[?:?]
    at java.util.HashMap.internalWriteEntries(HashMap.java:1839) ~[?:?]
    at java.util.HashMap.writeObject(HashMap.java:1411) ~[?:?]
    at jdk.internal.reflect.GeneratedMethodAccessor18.invoke(Unknown Source) ~[?:?]
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
    at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1145) ~[?:?]
    at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1497) ~[?:?]
    at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433) ~[?:?]
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179) ~[?:?]
    at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1553) ~[?:?]
    at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:442) ~[?:?]
    at org.apache.jorphan.collections.HashTree.writeObject(HashTree.java:951) ~[jorphan.jar:5.4.1]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
    at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1145) ~[?:?]
    at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1497) ~[?:?]
    at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433) ~[?:?]
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179) ~[?:?]
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:349) ~[?:?]
    at java.util.HashMap.internalWriteEntries(HashMap.java:1840) ~[?:?]
    at java.util.HashMap.writeObject(HashMap.java:1411) ~[?:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
    at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1145) ~[?:?]
    at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1497) ~[?:?]
    at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433) ~[?:?]
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179) ~[?:?]
    at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1553) ~[?:?]
    at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:442) ~[?:?]
    at org.apache.jorphan.collections.HashTree.writeObject(HashTree.java:951) ~[jorphan.jar:5.4.1]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
    at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1145) ~[?:?]
    at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1497) ~[?:?]
    at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433) ~[?:?]
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179) ~[?:?]
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:349) ~[?:?]
    at sun.rmi.server.UnicastRef.marshalValue(UnicastRef.java:293) ~[?:?]
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:155) ~[?:?]
    ... 21 more
2021-07-09 09:57:30,773 INFO o.a.j.e.ClientJMeterEngine: Interrupting RMI Reaper
2021-07-09 09:57:30,773 ERROR o.a.j.u.JMeterUtils: Error in rconfigure() method java.rmi.MarshalException: error marshalling arguments; nested exception is: 
    java.io.NotSerializableException: org.apache.jmeter.threads.RemoteThreadsListenerTestElement
2021-07-09 09:57:33,605 INFO o.a.j.e.DistributedRunner: Remote engines have been started:[]
2021-07-09 09:57:33,606 ERROR o.a.j.e.DistributedRunner: The following remote engines have not started:[172.xx.xxx.xx1]

如果有人知道我做错了什么或需要改变,将不胜感激。

标签: ssljmeterload-testingfirewalldistributed-testing

解决方案


如果要覆盖该client.rmi.localport设置,请确保它在主服务器和所有从服务器上相同

所以我的期望是,如果你添加下一行:

client.rmi.localport=5888

您设置的所有从属user.properties文件应该开始正常工作。

更多信息:


推荐阅读