无法在 JMeter 4.0 中启动从站

Unable to launch slave in JMeter 4.0

我想在 Windows OS 的 JMeter 4.0 中设置 JMeter Master Slave。 我在 jmeter-server 文件中做了以下更改。

RMI_HOST_DEF=-Djava.rmi.server.hostname=10.304.61.62

为了启动从机,我从 bin 文件夹中执行以下命令

jmeter-server

这在 JMeter 3.1 中有效。但在 JMeter 4.0

中出现以下错误
ERROR o.a.j.JMeter: An error occurred: 

java.rmi.server.ExportException: 监听端口 0 失败;嵌套异常是: java.io.FileNotFoundException: rmi_keystore.jks (系统找不到指定的文件) 在 sun.rmi.transport.tcp.TCPTransport.listen(来源不明)~[?:1.8.0_181] 在 sun.rmi.transport.tcp.TCPTransport.exportObject(未知来源)~[?:1.8.0_181] 在 sun.rmi.transport.tcp.TCPEndpoint.exportObject(未知来源)~[?:1.8.0_181] 在 sun.rmi.transport.LiveRef.exportObject(未知来源)~[?:1.8.0_181] 在 sun.rmi.server.UnicastServerRef.exportObject(来源不明)~[?:1.8.0_181] 在 java.rmi.server.UnicastRemoteObject.exportObject(未知来源)~[?:1.8.0_181] 在 java.rmi.server.UnicastRemoteObject.exportObject(未知来源)~[?:1.8.0_181] 在 java.rmi.server.UnicastRemoteObject.(未知来源)~[?:1.8.0_181] 在 org.apache.jmeter.engine.RemoteJMeterEngineImpl.(RemoteJMeterEngineImpl.java:65) ~[ApacheJMeter_core.jar:4.0 r1823414] 在 org.apache.jmeter.engine.RemoteJMeterEngineImpl.startServer(RemoteJMeterEngineImpl.java:71) ~[ApacheJMeter_core.jar:4.0 r1823414] 在 org.apache.jmeter.JMeter.start(JMeter.java:501) [ApacheJMeter_core.jar:4.0 r1823414] 在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)~[?:1.8.0_181] 在 sun.reflect.NativeMethodAccessorImpl.invoke(未知 来源)~[?:1.8.0_181] 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)~[?:1.8.0_181]

at org.apache.jmeter.NewDriver.main(NewDriver.java:245) [ApacheJMeter.jar:4.0 r1823414]

原因:java.io.FileNotFoundException:rmi_keystore.jks(系统找不到指定的文件)

at java.io.FileInputStream.open0(Native Method) ~[?:1.8.0_181]
at java.io.FileInputStream.open(Unknown Source) ~[?:1.8.0_181]
at java.io.FileInputStream.<init>(Unknown Source) ~
[?:1.8.0_181]
at java.io.FileInputStream.<init>(Unknown Source) ~[?:1.8.0_181]
at org.apache.jmeter.rmi.SSLRMIServerSocketFactory.loadStore(SSLRMIServerSocketFactory.java:148) ~
[ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.rmi.SSLRMIServerSocketFactory.createServerSocket(SSLRMIServerSocketFactory.java:100) ~[ApacheJMeter_core.jar:4.0 
r1823414]
at sun.rmi.transport.tcp.TCPEndpoint.newServerSocket(Unknown Source) ~[?:1.8.0_181]
... 16 more

根据 Setting Up SSL chapter of the Remote Testing JMeter 用户手册条目,您需要执行以下操作之一:

  1. 如果你想在主从之间使用安全通信,你需要启动 create-rmi-keystore 脚本(它位于 JMeter 安装的 "bin" 文件夹中) - 它会产生所需的 rmi_keystore.jks 文件。

  2. 如果你don't want to use secure communication在master和slave之间你可以添加下一行到user.properties file

    server.rmi.ssl.disable=true
    

    需要重新启动 JMeter 才能选择 属性

无论采用哪种方法,您都必须在主服务器和 所有从服务器上实施 1 或 2

以上答案基于JMeter Distributed Testing with Docker篇文章。