Jmeter Distributed Setup 在 GUI 中工作,但在命令行中不工作
Jmeter Distributed Setup works in GUI but not the command line
我 运行ning Windows 7 Pro 和 JMeter 4.0 r1823414 在所有 5 台机器上都装有 Java JDK 1.8.0_144以及。所有路径和环境变量在所有机器上都是相同的。我在 master 中设置了我的远程主机,我能够在 master 中的 GUI 上看到它们。我在一台从机上构建了 rmi_keystore.jks 并将其复制到每台机器的 bin 文件夹中。我成功地启动了从属机器上的所有服务器,并看到 rmi 的成功连接(运行ning the jmeter-server.bat):
Found ApacheJMeter_core.jar
Picked up JAVA_TOOL_OPTIONS: -agentlib:jvmhook
Picked up _JAVA_OPTIONS: -Xbootclasspath/a:"C:\Program Files
(x86)\HP\Unified Functional Testing\bin\java_shared\classes\jasmine.jar"
Created remote object: UnicastServerRef2 [liveRef: [endpoint:
[<ip:port>,SSLRMIServerSocketFactory(host=<host_name/IP>,
keyStoreLocation=rmi_keystore.jks, type=JKS,
trustStoreLocation=rmi_keystore.jks, type=JKS, alias=rmi),
SSLRMIClientSocketFactory(keyStoreLocation=rmi_keystore.jks, type=JKS,
trustStoreLocation=rmi_keystore.jks, type=JKS, alias=rmi)](local),objID:
[<stuff>:-7fff, <more_stuff>]]]
运行 一个基本的 HTTP 调用 我能够 运行 从主机到所有 4 个从机(单独和同时)并从 GUI 中毫无问题地获得结果。我的问题来自命令行。我无法获得 运行 的测试。我试过:
jmeter -n -t distributed_test_4_slaves.jmx -r -l distributedLog_Test.jtl -Jserver.rmi.ssl.keystore.file=rmi_keystore.jks
jmeter -n -t distributed_test_4_slaves.jmx -r -l distributedLog_Test.jtl
jmeter -n -t distributed_test_4_slaves.jmx -R <all_my machine_names> -l distributedLog_Test.jtl (with and without -Jserver.rmi.ssl.keystore.file=rmi_keystore.jks)
jmeter -n -t distributed_test_4_slaves.jmx -R <all_my machine_names:ports> -l distributedLog_Test.jtl (with and without -Jserver.rmi.ssl.keystore.file=rmi_keystore.jks)
jmeter -n -t distributed_test_4_slaves.jmx -R <all_my machine_ips(with and without ports)> -l distributedLog_Test.jtl (with and without -Jserver.rmi.ssl.keystore.file=rmi_keystore.jks)
每次我在命令行中遇到同样的错误:
Creating summariser <summary>
Created the tree successfully using distributed_test_4_slaves.jmx
#The next 5 lines repeat for each slave
Configuring remote engine: <slave_1..4>
Exception creating connection to: <slave_1..4>; nested exception is:
java.io.FileNotFoundException: rmi_keystore.jks (The system cannot
find the file specified)
Failed to configure <slave_1..4>
Stopping remote engines
Remote engines have been stopped
Error in NonGUIDriver java.lang.RuntimeException: Following remote
engines could not be configured:[
<slave_1>, <slave_2>, <slave_3>, <slave_4>]
我错过了什么?为什么它会 运行 并在 GUI 中工作而不是在命令行中工作?有些事情不可能是对的。
确保
- 您可以从“bin”文件夹中 运行 JMeter
- 或者在您运行从
安装 JMeter 的文件夹中有 rmi_keystore.jks
因为错误清楚地表明 JMeter 试图加载 rmi_keystore.jks
文件但失败了
还可以尝试通过 server.rmi.ssl.keystore.file
属性.
提供 rmi_keystore.jks
文件的完整路径
您还可以通过将 server.rmi.ssl.disable
属性 设置为 true
来完全禁用安全 RMI 通信
通常 jmeter.log 文件应该包含问题的根本原因,如果它没有或不是很有用 - 您可以 increase JMeter log verbosity 选择类(ses)或包(s)。
我 运行ning Windows 7 Pro 和 JMeter 4.0 r1823414 在所有 5 台机器上都装有 Java JDK 1.8.0_144以及。所有路径和环境变量在所有机器上都是相同的。我在 master 中设置了我的远程主机,我能够在 master 中的 GUI 上看到它们。我在一台从机上构建了 rmi_keystore.jks 并将其复制到每台机器的 bin 文件夹中。我成功地启动了从属机器上的所有服务器,并看到 rmi 的成功连接(运行ning the jmeter-server.bat):
Found ApacheJMeter_core.jar
Picked up JAVA_TOOL_OPTIONS: -agentlib:jvmhook
Picked up _JAVA_OPTIONS: -Xbootclasspath/a:"C:\Program Files
(x86)\HP\Unified Functional Testing\bin\java_shared\classes\jasmine.jar"
Created remote object: UnicastServerRef2 [liveRef: [endpoint:
[<ip:port>,SSLRMIServerSocketFactory(host=<host_name/IP>,
keyStoreLocation=rmi_keystore.jks, type=JKS,
trustStoreLocation=rmi_keystore.jks, type=JKS, alias=rmi),
SSLRMIClientSocketFactory(keyStoreLocation=rmi_keystore.jks, type=JKS,
trustStoreLocation=rmi_keystore.jks, type=JKS, alias=rmi)](local),objID:
[<stuff>:-7fff, <more_stuff>]]]
运行 一个基本的 HTTP 调用 我能够 运行 从主机到所有 4 个从机(单独和同时)并从 GUI 中毫无问题地获得结果。我的问题来自命令行。我无法获得 运行 的测试。我试过:
jmeter -n -t distributed_test_4_slaves.jmx -r -l distributedLog_Test.jtl -Jserver.rmi.ssl.keystore.file=rmi_keystore.jks
jmeter -n -t distributed_test_4_slaves.jmx -r -l distributedLog_Test.jtl
jmeter -n -t distributed_test_4_slaves.jmx -R <all_my machine_names> -l distributedLog_Test.jtl (with and without -Jserver.rmi.ssl.keystore.file=rmi_keystore.jks)
jmeter -n -t distributed_test_4_slaves.jmx -R <all_my machine_names:ports> -l distributedLog_Test.jtl (with and without -Jserver.rmi.ssl.keystore.file=rmi_keystore.jks)
jmeter -n -t distributed_test_4_slaves.jmx -R <all_my machine_ips(with and without ports)> -l distributedLog_Test.jtl (with and without -Jserver.rmi.ssl.keystore.file=rmi_keystore.jks)
每次我在命令行中遇到同样的错误:
Creating summariser <summary>
Created the tree successfully using distributed_test_4_slaves.jmx
#The next 5 lines repeat for each slave
Configuring remote engine: <slave_1..4>
Exception creating connection to: <slave_1..4>; nested exception is:
java.io.FileNotFoundException: rmi_keystore.jks (The system cannot
find the file specified)
Failed to configure <slave_1..4>
Stopping remote engines
Remote engines have been stopped
Error in NonGUIDriver java.lang.RuntimeException: Following remote
engines could not be configured:[
<slave_1>, <slave_2>, <slave_3>, <slave_4>]
我错过了什么?为什么它会 运行 并在 GUI 中工作而不是在命令行中工作?有些事情不可能是对的。
确保
- 您可以从“bin”文件夹中 运行 JMeter
- 或者在您运行从 安装 JMeter 的文件夹中有
rmi_keystore.jks
因为错误清楚地表明 JMeter 试图加载 rmi_keystore.jks
文件但失败了
还可以尝试通过 server.rmi.ssl.keystore.file
属性.
rmi_keystore.jks
文件的完整路径
您还可以通过将 server.rmi.ssl.disable
属性 设置为 true
通常 jmeter.log 文件应该包含问题的根本原因,如果它没有或不是很有用 - 您可以 increase JMeter log verbosity 选择类(ses)或包(s)。