当前位置: 首页 > 知识库问答 >
问题:

无法将参数传递给具有 Maven 和 Linux 的分布式 JMeter 设置的从站

姜飞飙
2023-03-14

在所有服务器上使用JMeter 2.13,Maven和Linux。不从gui或命令行运行任何测试,使用Maven!

有一个包含许多参数的测试计划,这些参数是在Jenkins从Maven执行传递到JMeter测试计划的。在Maven中使用“-J”来设置输入参数。在单个JMeter环境中工作正常。

如果我先手动启动从属服务器中的JMeter,然后启动 Jenkins 作业,则指定远程服务器中的测试计划将正确启动。但是我观察到没有参数传输到远程服务器。因此,我无法控制测试计划的执行。临时解决方法是对测试计划中的某些参数进行硬编码。但这是不可接受的解决方案!

我环顾了很多地方。找到了这些页面、JMeter分布式测试和命令行参数以及

但是我是从Maven运行的,而不是命令行,所以“-G”不起作用!

尚未进行任何RMI设置,但我认为这不是问题所在。可能更多地与参数应如何传输到远程服务器有关。

在 pom 中设置.xml,

<propertiesJMeter>
    <remote_hosts>10.71.98.54,10.71.98.82,10.71.98.81</remote_hosts>
</propertiesJMeter>

我确实设法使基本的从属连接工作;我在输出/日志中看到远程服务器IP地址的打印输出,测试计划已启动并运行良好,日志似乎也没问题。但是,问题是参数不会传输到远程服务器!

一些额外的 pom 配置:

<configuration>
    <remoteConfig>
        <startServersBeforeTests>true</startServersBeforeTests>
        <stopServersAfterTests>true</stopServersAfterTests>
    </remoteConfig>
    <propertiesUser>
        <THROUGHPUT>${throughput}</THROUGHPUT>
        <NUMBER_OF_LOOPS>${number_of_loops}</NUMBER_OF_LOOPS>
        <DURATION>${duration}</DURATION>
        <NUMBER_OF_CLIENTS>${number_of_clients}</NUMBER_OF_CLIENTS>                
    </propertiesUser>

...

拜托,有人能帮忙吗?

共有2个答案

公孙志尚
2023-03-14

多谢。您的第一个文档链接指向我认为错误的页面。无论如何,我猜你指的是,https://github.com/jmeter-maven-plugin/jmeter-maven-plugin/wiki/Modifying-Properties#6

很奇怪,很难从你能找到的“JMeter dist”指南中找到。

非常感谢。:-)参数现在工作正常。

但是remoteConfig参数不起作用。Jeter远程连接抛出“连接拒绝托管”https://github.com/jmeter-maven-plugin/jmeter-maven-plugin/wiki/Remote-Server-Configuration

但是有人能确认上面第一个链接中的结论是正确的吗?

当我阅读第二个链接中的信息时,我确实理解了它,因为JMeter不必启动。但是,必须启动“jmeter服务器”,否则它将无法正常工作,对吗?现在猜想它有意义了。

钱志强
2023-03-14

根据文件:

向属性添加其他属性Global

全局属性是发送到远程计算机的属性。要设置这些属性,您需要在pom中指定每个属性。config元素propertiesGlobal中的xml(下面的示例显示了一个名为threads的属性和一个正在设置的名为testIterations的属性)。

<project>
    [...]
        <build>
            <plugins>
                <plugin>
                    <groupId>com.lazerycode.jmeter</groupId>
                    <artifactId>jmeter-maven-plugin</artifactId>
                    <version>2.0.3</version>
                    <executions>
                        <execution>
                            <id>jmeter-tests</id>
                            <goals>
                                <goal>jmeter</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <propertiesGlobal>
                            <threads>10</threads>
                            <testIterations>5</testIterations>
                        </propertiesGlobal>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    [...]
</project>

因此,看起来您需要将这些属性移动到

引用:

    < li >关于Maven插件的JMeter Wiki页面 < li>JMeter Maven插件Wiki < li >不使用JMeter GUI启动JMeter测试的五种方法

 类似资料:
  • 问题内容: 我正在尝试使用Maven释放一个库并执行站点部署来sourceforge(我首先创建了一个交互式shell)。该发布由Jenkins作业完成(使用Jenkins的Maven发布插件)。 我试过了: 和 但两次工作都挂在site:第一个模块的部署: 当我停止工作时,将在最后打印以下内容: 这可能意味着$ {username}尚未解析。 如何解析$ {username}? 编辑: 请注意以

  • 我最近开始学习Swift,遇到了一个关于闭包的问题。我试图将开车的参数传递给func travel并收到错误消息:无法将类型'()'的值转换为预期的参数类型'()- 有人能善意地建议吗?赞赏!

  • 我有一个片段a,包含一个片段B。 当片段A处于onActivityCreated生命周期中时,我想从片段A向片段B传递一个参数(因为我有一个来自viewmodel的数据,该数据此时到达)。 在我的片段B中,我无法得到这个论点。我有一个空异常。 你有办法解决我的问题吗? 这是我的代码 片段A 片段B fragment_a.xml

  • 问题内容: 以下代码的输出是因为从beginIndex到EndIndex-1。但是,令我惊讶的是这里的3(int)因为是两个整数。这背后的概念是什么? 问题答案: 一直到C,从本质上讲是一个窄整数类型,并在需要时隐式转换为C。 在Java中,这在技术上称为“扩展原始转换”,在JLS的5.1.2节中进行了介绍。

  • 问题内容: 我正在使用py.test来测试包装在python类MyTester中的某些DLL代码。为了进行验证,我需要在测试期间记录一些测试数据,然后再进行更多处理。由于我有许多test _…文件,因此我想在大多数测试中重用测试器对象的创建(MyTester的实例)。 由于tester对象是获得DLL变量和函数的引用的对象,因此我需要将DLL变量的列表传递给每个测试文件的tester对象(要记录的

  • 我需要根据Spring Boot Maven应用程序中的环境细节激活配置文件。我在设置中配置了配置文件。xml 我尝试通过激活配置文件使用命令 但是配置文件没有正确激活。但是它是通过添加标签来工作的。 但是我需要激活特定环境的配置文件 我们可以通过任何方式将参数传递给设置中的。xml文件?类似于此 参考: 如何从命令行激活配置文件? 通过Maven在SpringBoot中配置活动配置文件 http