【问题标题】:Jmeter Maven Plugin not starting remote nodesJmeter Maven插件没有启动远程节点
【发布时间】:2019-10-31 10:03:08
【问题描述】:

我正在尝试使用 jmeter-maven-plugin 运行一个简单的分布式 jmeter 测试,但我无法让插件启动远程节点。如果我在每个节点上手动启动 jmeter-server,它将按预期工作,但我不想这样做。

下面是插件配置和插件运行的输出:

<plugin>
            <groupId>com.lazerycode.jmeter</groupId>
            <artifactId>jmeter-maven-plugin</artifactId>
            <configuration>
                <downloadExtensionDependencies>false</downloadExtensionDependencies>
                <remoteConfig>
                    <serverList>192.168.40.5</serverList>
                    <startServersBeforeTests>true</startServersBeforeTests>
                    <stopServersAfterTests>true</stopServersAfterTests>
                </remoteConfig>
                <jmeterExtensions>
                    <artifact>com.abc:performance-tests:${project.version}</artifact>
                </jmeterExtensions>
            </configuration>
            <executions>
                <execution>
                    <id>jmeter-tests</id>
                    <goals>
                        <goal>jmeter</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

14:10:38  [INFO] Executing test: Test Plan.jmx
14:10:38  [INFO] Arguments for forked JMeter JVM: [java, -Xms512M, -Xmx512M, -Djava.awt.headless=true, -jar, ApacheJMeter-5.1.1.jar, -d, /home/jenkins/jenkins/workspace/performance-tests_IB-33953/target/jmeter, -j, /home/jenkins/jenkins/workspace/performance-tests_IB-33953/target/jmeter/logs/Test Plan.jmx.log, -l, /home/jenkins/jenkins/workspace/performance-tests_IB-33953/target/jmeter/results/20190617-Test Plan.csv, -n, -r, -t, /home/jenkins/jenkins/workspace/performance-tests_IB-33953/target/jmeter/testFiles/Test Plan.jmx, -R, 192.168.40.5, -X, -Dsun.net.http.allowRestrictedHeaders, true]
14:10:38  [INFO]  
14:10:38  [INFO] Picked up JAVA_TOOL_OPTIONS: -Dmaven.ext.class.path="/home/jenkins/jenkins/workspace/performance-tests_IB-33953@tmp/withMaven289a3daf/pipeline-maven-spy.jar" -Dorg.jenkinsci.plugins.pipeline.maven.reportsFolder="/home/jenkins/jenkins/workspace/performance-tests_IB-33953@tmp/withMaven289a3daf" 
14:10:40  [INFO] Jun 17, 2019 2:10:40 PM java.util.prefs.FileSystemPreferences$1 run
14:10:40  [INFO] INFO: Created user preferences directory.
14:10:41  [INFO] Created the tree successfully using /home/jenkins/jenkins/workspace/performance-tests_IB-33953/target/jmeter/testFiles/Test Plan.jmx
14:10:41  [INFO] Configuring remote engine: 192.168.40.5
14:10:41  [INFO] Connection refused to host: 192.168.40.5; nested exception is: 
14:10:41  [INFO]    java.net.ConnectException: Connection refused (Connection refused)
14:10:41  [INFO] Failed to configure 192.168.40.5
14:10:41  [INFO] Stopping remote engines
14:10:41  [INFO] Remote engines have been stopped
14:10:41  [INFO] Error in NonGUIDriver java.lang.RuntimeException: Following remote engines could not be configured:[192.168.40.5]
14:10:42  [INFO] Completed Test: /home/jenkins/jenkins/workspace/performance-tests_IB-33953/target/jmeter/testFiles/Test Plan.jmx

我的 jmeter.properties 很简单:remote_hosts=192.168.40.5

有谁知道这里可能出了什么问题?我知道我同时使用 start all 和 start specific remote hosts 选项,但我分别尝试了它们,但似乎都不起作用。

远程节点本身通过使用密钥库(与 rmi_keystore 不同)的 SSH 进行保护。问题是否可能是插件试图使用 rmi_keystore 登录到盒子本身?

【问题讨论】:

    标签: java maven jmeter performance-testing jmeter-maven-plugin


    【解决方案1】:

    您似乎缺少一个执行块:

    <execution>
      <id>start jmeter-server</id>
      <goals>
        <goal>remote-server</goal>
      </goals>
      <configuration>
        <runInBackground>true</runInBackground>
      </configuration>
    </execution>
    

    查看远程服务器集成测试可能会起作用:

    https://github.com/jmeter-maven-plugin/jmeter-maven-plugin/tree/master/src/it/remote-test

    【讨论】:

    • 哇,我不知道这个选项。不过,我仍然对它如何工作感到有些困惑。难道它不需要节点凭据来实际登录到盒子来启动远程服务器吗?
    • 这需要与 POM 的远程配置部分结合使用。更多信息在这里:github.com/jmeter-maven-plugin/jmeter-maven-plugin/wiki/…
    • 此答案中的配置是将 JMeter 作为远程节点启动,然后您可以使用您最初提供的配置运行插件的另一个实例以连接到此远程节点。至于您如何进行身份验证,这取决于。如果您没有设置任何安全性,远程节点将使用任何人都可以连接的开放端口运行。如果你不喜欢运行开放节点的想法,你可以设置私钥来保护它(参见jmeter.apache.org/usermanual/remote-test.html#setup_ssl)。
    • 要明确此答案中的配置无法在另一台服务器上启动远程节点,它会启动本地远程节点。您需要在要启动的每个节点上运行它,然后在连接到您已启动的所有远程节点的机器上运行您的原始配置。
    • 关于它是本地远程节点的最后一条评论提供了我之前遗漏的说明。还没有任何东西可以从一个位置开始一切(主从)。不管是直接使用插件还是直接使用jmeter,我还是要去每个位置启动它。
    猜你喜欢
    • 2011-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-06
    • 2011-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多