如何为特定数量的用户设置条件以执行某些步骤

时间:2015-09-21 09:40:36

标签: jmeter

如何在jmeter中设置条件,以便80%的用户执行它,20%的用户不执行。请帮帮我。 我有一个http采样器,我希望它只在测试中为80%的用户执行,所以当用户数(线程数)发生变化时,该采样器执行请求的百分比将保持不变。

2 个答案:

答案 0 :(得分:2)

如果您想要在某些线程中使用某些采样器,而不是全部,最简单的方法是将它们添加到If Controller并在条件中添加如下内容:

${__Random(1,100)} <= 80

在这种情况下,该控制器中的请求有80%的机会运行(仅当随机值低于或等于80时才触发)。当然,它并不完美,因为有时它可以满足+ -5%的要求,但这是我所知道的最快最容易的方式。而且随着这种随机性,它更像是现实生活体验。

答案 1 :(得分:0)

我会将其添加为不同的答案,因为这是解决该问题的另一种方法。 您可以将计数器添加到测试计划(添加 - >配置元素 - &gt;计数器)并将其设置为Start: 1, Increment: 1, Max: 10, Reference name: count。 当您这样做时,您可以将If Controller的条件更改为${count} <= 8。它将在控制器中执行采样器8次,最后两次循环不会执行此操作。

当然你可以对它进行参数化,并且作为值添加你使用的循环/线程的数量,并根据比例调整条件中的最大数量,但如果你只使用10个循环那么方法就可以了。

唯一不像之前的回答那样好的东西是,采样器将按设定的次数进行,然后它将停止(因此没有随机性)。

还有关于该案例的参数以及我如何设置它的简单方法的附加说明(使用此设置线程数无关紧要 - 它将始终正常工作):

  • 计数器与开始:1,增量:1,参考名称:计数并选择'每个用户独立跟踪计数器'框
  • 具有由loopCount变量设置的循环计数的线程组,它也用于计算覆盖适当百分比所需的采样器数量
  • 如果控制器的条件设置为${Count} <= (${loopCount}*0.8)(0.8也可以设置一些变量以便于控制)