Powershell Jmeter:如何从命令行禁用特定的线程组

Powershell Jmeter:如何从命令行禁用特定的线程组,powershell,jmeter,Powershell,Jmeter,我正在将JMETER与我的powershell脚本一起使用,我的JMX(xml表示JMETER)文件已经创建,我以非GUI模式启动JMETER并将JMX传递给它。但以前它是工作的,但我添加了更多的线程组和多个HTTP请求,现在可能有一些堆大小的问题。所以我想用我的自动化脚本(powershell)从命令行禁用一些线程组。请找个人帮我解决这个问题好吗 使用以下命令定义线程组的线程数(虚拟用户): ${P(group1threads,)}-用于第一个线程组 ${P(group2threads,)}

我正在将JMETER与我的powershell脚本一起使用,我的JMX(xml表示JMETER)文件已经创建,我以非GUI模式启动JMETER并将JMX传递给它。但以前它是工作的,但我添加了更多的线程组和多个HTTP请求,现在可能有一些堆大小的问题。所以我想用我的自动化脚本(powershell)从命令行禁用一些线程组。请找个人帮我解决这个问题好吗

  • 使用以下命令定义线程组的线程数(虚拟用户):

    • ${P(group1threads,)}
      -用于第一个线程组
    • ${P(group2threads,)}
      -用于第二个线程组
    • 等等

  • 如果要禁用某个线程组,只需通过
    -J
    命令行参数将“线程数”设置为0,如下所示:

    jmeter -Jgroup1threads=0 -Jgroup2threads=50 etc
    

  • 不过,更好的办法是增加堆大小,因为JMeter默认值很低(512MB),这对于测试开发和调试来说很好,但对于真正的负载测试来说肯定不够。要执行此操作,请在JMeter启动脚本中找到以下行:

    HEAP=-Xms512m -Xmx512m
    

    并将这些值更新为总可用物理RAM的80%。需要重新启动JMeter才能获取新的堆大小值。有关JMeter调优的更多信息,请参阅指南。

    本指南对此进行了详细说明

    当您有多个线程组时,可以从命令行执行特定的线程组。对于线程组,只需将线程计数设为0即可

    测试计划设计:

    jmeter -n -t test.jmx -p mypropfile.properties
    
    假设我有5个这样的线程组。使用一些属性变量,而不是硬编码线程计数值。例:
    ${user.registration.usercount)}

    现在我只想执行
    用户登录和订单创建
    。这可以通过直接通过命令行传递属性/传递属性文件名本身来实现

    属性:

    jmeter -n -t test.jmx -p mypropfile.properties
    

    执行:

    jmeter -n -t test.jmx -p mypropfile.properties
    

    检查JMeter命令行选项

    上述解决方案很好,但在每个线程组中添加此类属性是一项非常繁琐的任务。假设我有100个线程组,我想在第一次迭代时运行前50个线程组,在第二次迭代时运行剩余的50个线程组,还有其他解决方案吗。表示如何从命令行仅选择前50个。我增加了Jmeter.bat和bin目录下的Jmeter中的堆大小,但它仍然不起作用。在这种情况下,您可以尝试使用该工具作为Jmeter测试的包装器,它允许定义哪些测试元素(包括线程组)将启用,并在测试运行期间禁用。有关详细信息,请参见第节。