使用2 CentOS虚拟机和Jmeter进行分布式测试

使用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

我有两个使用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

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