2016-11-23 157 views
1

我使用JMeter的与我的PowerShell脚本和我的JMX(XML JMeter的)文件已创建和我启动非GUI模式的JMeter并通过JMX。但以前它工作正常,但我添加了多个HTTP请求的线程组,现在可能会有一些堆大小问题。所以我想到使用我的自动化脚本(powershell)从命令行禁用一些线程组。请在这个问题上可以帮助我一些身体?????的JMeter:我如何可以从命令行禁用特定线程组

回答

3
  1. 定义(虚拟用户)的线程的数目使用__P() function像线程组:

    • ${__P(group1threads,)} - 对第一线程组
    • ${__P(group2threads,)} - 对第二线程组
    • Thread Group via Property

  2. 如果要禁用某个线程组 - 通过类似-J命令行参数正好被设置为0“线程数”:

    jmeter -Jgroup1threads=0 -Jgroup2threads=50 etc 
    

但是一个更好的主意会增加Heap大小,因为JMeter的默认值非常低(512 Mb),对于测试开发和调试来说很好,但对于真正的负载测试来说绝对不够。为了做到这一点,在JMeter启动脚本中找到以下行:

HEAP=-Xms512m -Xmx512m 

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

+0

我增加了Jmeter.bat和Jmeter在bin目录下的Heap大小,但它仍然不起作用。 –

+0

那么在这种情况下,您可以尝试使用[Taurus](http://gettaurus.org/)工具作为JMeter测试的包装,它允许定义哪些测试元素(包括线程组)将被禁用,哪些将被禁用在测试运行期间。有关详细信息,请参见[现有脚本的修改](http://gettaurus.org/docs/JMeter/#Modifications-for-Existing-Scripts)部分。 –

1

这在article中有详细解释。当您有多个线程组时,您可以从命令行执行特定线程组。你只需要简单地使线程组的线程数为0。

试验设计:

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

enter image description here

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

属性:

enter image description here

执行:

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

检查JMeter的命令行选项here

+0

以上解决方案很好,但在每个线程组中添加这种属性是非常繁琐的任务。是否有其他解决方案假设我有100个线程组,并且我想在第一次迭代时运行第一个50,在第二次迭代时运行50。意味着如何从命令行中仅选择前50个。 –

相关问题