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

时间:2016-11-23 13:56:37

标签: powershell jmeter

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

2 个答案:

答案 0 :(得分:5)

  1. 使用__P() function定义线程组的线程数(虚拟用户),如:

    • insert into your_Table (a, b) select distinct a, 0 from your_Table - 第一个线程组
    • ${__P(group1threads,)} - 第二个线程组
    • Thread Group via Property

  2. 如果要禁用某个线程组 - 只需通过${__P(group2threads,)}命令行参数将“线程数”设置为0,如:

    -J
  3. 然而,更好的想法是增加堆大小,因为默认情况下JMeter具有相当低的值(512 Mb),这对于测试开发和调试来说很好,但对于实际负载测试来说绝对不够。为了做到这一点,请在JMeter启动脚本中找到以下行:

    jmeter -Jgroup1threads=0 -Jgroup2threads=50 etc
    

    并将值更新为总可用物理RAM的80%。需要重新启动JMeter才能选择新的堆大小值。有关JMeter调整的更多信息,请参阅9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure指南。

答案 1 :(得分:2)

这正是在article中解释的。

如果有多个线程组,则可以从命令行执行特定的线程组。您需要简单地为线程组使线程计数为0.

测试计划设计:

假设我有5个这样的线程组。而不是硬编码线程计数值,使用一些属性变量。例如:${__P(user.registration.usercount)}

enter image description here

现在我只想执行User Login & Order Creation。这可以通过直接传递属性throw命令行/传递属性文件名本身来实现。

<强>属性:

enter image description here

<强>执行:

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

检查JMeter命令行选项here