【问题标题】:Jmeter Distributed Setup works in GUI but not the command lineJmeter 分布式设置在 GUI 中工作,但在命令行中不工作
【发布时间】:2018-11-03 02:34:50
【问题描述】:

我在所有 5 台机器上运行带有 JMeter 4.0 r1823414 的 Windows 7 Pro,所有机器上也都安装了 Java JDK 1.8.0_144。所有路径和 ENV 变量在所有机器上都是相同的。我将我的远程主机设置在主服务器中,我可以在主服务器内的 GUI 上看到它们。我在从属机器上构建了 rmi_keystore.jks 并将其复制到每台机器的 bin 文件夹中。我成功启动了slave机器上的所有服务器,看到rmi成功挂载(运行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 中运行和工作,而不是在命令行中?不可能是对的。

【问题讨论】:

    标签: jmeter rmi load-testing jmeter-4.0


    【解决方案1】:

    确保

    1. 您可以从其“bin”文件夹中运行 JMeter
    2. 或者在您运行 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 选择选定的类或包.

    【讨论】:

    • 我仍然不确定它为什么起作用,但它似乎只有在我从 jmeter bin 目录中运行测试时才起作用。我尝试从命令行在属性文件中设置 rmi 文件的完整路径,但它仍然会抱怨它无法在从属机器上找到 rmi。如果我从 master 上的 bin 目录运行并且完全限定所有其他路径(jmx、资源文件等),那么它就会运行。必须有一个配置块或其他可以理解这一点的东西,但现在这可行。谢谢德米特里 T
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-24
    • 1970-01-01
    • 2022-06-14
    • 2021-08-27
    • 2014-01-31
    • 2016-09-09
    • 2012-07-28
    相关资源
    最近更新 更多