使用2 CentOS虚拟机和Jmeter进行分布式测试
我有两个使用CentOS的虚拟机。它们都安装了同一版本的Jmeter并正常工作。 我正在尝试运行一个分布式测试,我修改了jmeter.properties文件(remote_host属性并将属性#server.rmi.ssl.disable设置为true),我可以在机器之间进行正常的ping,而且jmeter似乎可以访问作为“从属”或load Generator工作的机器,但我得到以下错误:使用2 CentOS虚拟机和Jmeter进行分布式测试,jmeter,performance-testing,jmeter-5.0,Jmeter,Performance Testing,Jmeter 5.0,我有两个使用CentOS的虚拟机。它们都安装了同一版本的Jmeter并正常工作。 我正在尝试运行一个分布式测试,我修改了jmeter.properties文件(remote_host属性并将属性#server.rmi.ssl.disable设置为true),我可以在机器之间进行正常的ping,而且jmeter似乎可以访问作为“从属”或load Generator工作的机器,但我得到以下错误: [root@01 bin]# jmeter -n -t jmeter_script1.jmx -r C
[root@01 bin]# jmeter -n -t jmeter_script1.jmx -r
Creating summariser <summary>
Created the tree successfully using jmeter_script1.jmx
Configuring remote engine: 10.111.2.4
Starting remote engines
Starting the test @ Tue Oct 15 14:12:17 CEST 2019 (1571141537956)
Error in rconfigure() method java.rmi.ConnectIOException: Exception creating connection to: 10.111.2.4; nested exception is:
java.net.NoRouteToHostException: No route to host (Host unreachable)
Remote engines have been started
Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445
----更新日期:2019年10月22日
德米特里的评论真的很有帮助。他是对的,jmeter从机缺少并发线程组。在我安装它之后,没有更多的错误消息,测试正在正确启动,我在从机中获得启动/完成信息
我使用Taurus来执行测试,即使测试在从机上运行,也没有数据提交到Taurus GUI。即使测试已经在从机中完成,Taurus GUI也一直在启动和运行(我需要杀死它来停止测试)。我是否错过了另一个插件 很可能是网络或防火墙问题
- 您定义为
服务器\u端口的端口,默认情况下
1099
- 您定义为
server.rmi.localport的端口
- 您定义为
client.rmi.localport的端口
true
更多信息:第1点:确定第2点:我已经允许使用端口1099,并且我正在使用以下配置:server.rmi.ssl.disable=true,那么我不需要担心端口server.rmi.localport和client.rmi.localport,对吗?第3点:我已经将属性java.net.preferIPv4Stack=true添加到JMeter服务器机器中的system.properties文件中。我仍然收到同样的错误。你必须担心端口,禁用安全通信不符合要求,主机不必与slavesHi Dmitri通信,我已经用额外的信息更新了帖子,你对我现在的情况有什么看法吗?谢谢!您需要在所有从机上安装(至少)插件。该插件可以使用安装。如果还有其他插件,你也需要安装它们。如果您使用的是外部文件(即带有测试数据的CSV文件),您需要将它们复制到slavesThis工作过的Dmitri,谢谢!我有一个与此相关的附加问题,我已经用信息更新了帖子,如果你能给我提供建议,我会很高兴的。
16:48:21 INFO: Taurus CLI Tool v1.13.8
16:48:21 INFO: Starting with configs: ['test1.yml']
16:48:21 INFO: Configuring...
16:48:22 INFO: Artifacts dir: /root/taurus_container_scripts/2019-10-21_16-48-22.015788
16:48:22 WARNING: at path 'execution': 'execution' should be a list
16:48:22 INFO: Preparing...
16:48:22 WARNING: There is newer version of Taurus 1.13.9 available, consider upgrading. What's new: http://gettaurus.org/docs/Changelog/
16:48:24 INFO: Starting...
16:48:24 INFO: Waiting for results...
16:48:25 INFO: Waiting for finish...
16:48:27 WARNING: Please wait for graceful shutdown...
16:48:27 INFO: Shutting down...
16:48:27 INFO: Post-processing...
16:48:27 INFO: Test duration: 0:00:03
16:48:27 INFO: Test duration: 0:00:03
16:48:27 ERROR: Child Process Error: Empty results, most likely quick-test (JMeterExecutor) failed. Actual reason for this can be found in logs under /root/taurus_container_scripts/2019-10-21_16-48-22.015788
16:48:27 ERROR: JMeter STDOUT:
Created the tree successfully using /root/taurus_container_scripts/2019-10-21_16-48-22.015788/modified_requests.jmx
Configuring remote engine: 10.111.2.4
Starting remote engines
Starting the test @ Mon Oct 21 16:48:26 CEST 2019 (1571669306099)
Error in rconfigure() method java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: com.blazemeter.jmeter.threads.concurrency.ConcurrencyThreadGroup (no security manager: RMI class loader disabled)
Remote engines have been started
Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445
16:48:27 ERROR: JMeter log:
2019-10-21 16:48:26,902 ERROR o.a.j.e.ClientJMeterEngine: Error in rconfigure() method
java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: com.blazemeter.jmeter.threads.concurrency.ConcurrencyThreadGroup (no security manager: RMI class loader disabled)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:389) ~[?:1.8.0_222]
at sun.rmi.transport.Transport$1.run(Transport.java:200) ~[?:1.8.0_222]
at sun.rmi.transport.Transport$1.run(Transport.java:197) ~[?:1.8.0_222]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_222]
at sun.rmi.transport.Transport.serviceCall(Transport.java:196) ~[?:1.8.0_222]
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573) ~[?:1.8.0_222]
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834) ~[?:1.8.0_222]
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688) ~[?:1.8.0_222]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_222]
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687) ~[?:1.8.0_222]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_222]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_222]
at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_222]
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:283) ~[?:1.8.0_222]
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:260) ~[?:1.8.0_222]
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:161) ~[?:1.8.0_222]
at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:227) ~[?:1.8.0_222]
at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:179) ~[?:1.8.0_222]
at com.sun.proxy.$Proxy19.rconfigure(Unknown Source) ~[?:?]
at org.apache.jmeter.engine.ClientJMeterEngine.runTest(ClientJMeterEngine.java:153) [ApacheJMeter_core.jar:5.1.1 r1855137]
at org.apache.jmeter.engine.DistributedRunner.start(DistributedRunner.java:132) [ApacheJMeter_core.jar:5.1.1 r1855137]
at org.apache.jmeter.engine.DistributedRunner.start(DistributedRunner.java:149) [ApacheJMeter_core.jar:5.1.1 r1855137]
at org.apache.jmeter.JMeter.runNonGui(JMeter.java:1089) [ApacheJMeter_core.jar:5.1.1 r1855137]
at org.apache.jmeter.JMeter.startNonGui(JMeter.java:991) [ApacheJMeter_core.jar:5.1.1 r1855137]
at org.apache.jmeter.JMeter.start(JMeter.java:563) [ApacheJMeter_core.jar:5.1.1 r1855137]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_222]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_222]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_222]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_222]
at org.apache.jmeter.NewDriver.main(NewDriver.java:253) [ApacheJMeter.jar:5.1.1 r1855137]
Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: com.blazemeter.jmeter.threads.concurrency.ConcurrencyThreadGroup (no security manager: RMI class loader disabled)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:348) ~[?:1.8.0_222]
at sun.rmi.transport.Transport$1.run(Transport.java:200) ~[?:1.8.0_222]
at sun.rmi.transport.Transport$1.run(Transport.java:197) ~[?:1.8.0_222]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_222]
at sun.rmi.transport.Transport.serviceCall(Transport.java:196) ~[?:1.8.0_222]
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573) ~[?:1.8.0_222]
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834) ~[?:1.8.0_222]
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688) ~[?:1.8.0_222]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_222]
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687) ~[?:1.8.0_222]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_222]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_222]
at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_222]
Caused by: java.lang.ClassNotFoundException: com.blazemeter.jmeter.threads.concurrency.ConcurrencyThreadGroup (no security manager: RMI class loader disabled)
at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:396) ~[?:1.8.0_222]
at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:186) ~[?:1.8.0_222]
at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:637) ~[?:1.8.0_222]
at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:264) ~[?:1.8.0_222]
at sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:219) ~[?:1.8.0_222]
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1867) ~[?:1.8.0_222]
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1750) ~[?:1.8.0_222]
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2041) ~[?:1.8.0_222]
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572) ~[?:1.8.0_222]
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430) ~[?:1.8.0_222]
at java.util.HashMap.readObject(HashMap.java:1410) ~[?:1.8.0_222]
at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_222]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_222]
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1170) ~[?:1.8.0_222]
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2177) ~[?:1.8.0_222]
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2068) ~[?:1.8.0_222]
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572) ~[?:1.8.0_222]
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2286) ~[?:1.8.0_222]
at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:560) ~[?:1.8.0_222]
at org.apache.jorphan.collections.HashTree.readObject(HashTree.java:948) ~[jorphan.jar:5.1.1 r1855137]
at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_222]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_222]
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1170) ~[?:1.8.0_222]
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2177) ~[?:1.8.0_222]
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2068) ~[?:1.8.0_222]
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572) ~[?:1.8.0_222]
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430) ~[?:1.8.0_222]
at java.util.HashMap.readObject(HashMap.java:1412) ~[?:1.8.0_222]
at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_222]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_222]
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1170) ~[?:1.8.0_222]
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2177) ~[?:1.8.0_222]
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2068) ~[?:1.8.0_222]
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572) ~[?:1.8.0_222]
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2286) ~[?:1.8.0_222]
at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:560) ~[?:1.8.0_222]
at org.apache.jorphan.collections.HashTree.readObject(HashTree.java:948) ~[jorphan.jar:5.1.1 r1855137]
at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_222]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_222]
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1170) ~[?:1.8.0_222]
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2177) ~[?:1.8.0_222]
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2068) ~[?:1.8.0_222]
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572) ~[?:1.8.0_222]
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430) ~[?:1.8.0_222]
at sun.rmi.server.UnicastRef.unmarshalValue(UnicastRef.java:322) ~[?:1.8.0_222]
at sun.rmi.server.UnicastServerRef.unmarshalParametersUnchecked(UnicastServerRef.java:629) ~[?:1.8.0_222]
at sun.rmi.server.UnicastServerRef.unmarshalParameters(UnicastServerRef.java:617) ~[?:1.8.0_222]
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:338) ~[?:1.8.0_222]
at sun.rmi.transport.Transport$1.run(Transport.java:200) ~[?:1.8.0_222]
at sun.rmi.transport.Transport$1.run(Transport.java:197) ~[?:1.8.0_222]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_222]
at sun.rmi.transport.Transport.serviceCall(Transport.java:196) ~[?:1.8.0_222]
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573) ~[?:1.8.0_222]
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834) ~[?:1.8.0_222]
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688) ~[?:1.8.0_222]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_222]
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687) ~[?:1.8.0_222]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_222]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_222]
at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_222]
2019-10-21 16:48:26,917 INFO o.a.j.e.ClientJMeterEngine: Interrupting RMI Reaper
2019-10-21 16:48:26,917 ERROR o.a.j.u.JMeterUtils: Error in rconfigure() method java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: com.blazemeter.jmeter.threads.concurrency.ConcurrencyThreadGroup (no security manager: RMI class loader disabled)
2019-10-21 16:48:26,918 INFO o.a.j.e.DistributedRunner: Remote engines have been started
./jmeter-server -Djava.rmi.server.hostname=10.111.2.4