同步计时器未按预期运行



我之前发布了一个问题,关于如何将线程组中的所有线程延迟到最后一个线程完全上升。有人建议我使用同步计时器,它似乎是正确的计时器。然而,我后来发现,同步定时器不仅像我希望的那样延迟了所有线程,而且我的测试现在只在前一个请求完全完成后执行下一个请求,用于所有请求。

我的测试设置如下:

测试(20个线程(

  • 登录(事务控制器(
  • 做某事(事务控制器(
    • 同步定时器(等待所有用户登录(
    • HTTP请求1
    • HTTP请求2

所以对于上面的例子:

  1. 所有20个用户都已登录
  2. 所有用户登录后,同时执行20个HTTP请求1
  3. 只有在所有20个HTTP请求1都收到响应后,才执行20个HTTP申请2

当我在同时触发第一批20个HTTP请求1s时,我希望随着HTTP请求1s响应的返回,逐步执行以下HTTP请求2s。我不想在这里等。

我该怎么做?

根据计时器文档:

请注意,在发现计时器的范围内,计时器在每个采样器之前都会进行处理如果同一范围内有多个计时器,则所有计时器都将在每个采样器之前进行处理。

计时器只能与采样器一起处理。与采样器不在同一范围内的计时器根本不会被处理。

若要将计时器应用于单个采样器,请将计时器添加为采样器的子元素在执行采样器之前,将应用计时器。要在采样器之后应用计时器,可以将其添加到下一个采样器,也可以将其作为流控制动作采样器的子采样器添加。

请注意JMeter作用域规则,根据您的设置,同步定时器应用于事务控制器下的所有HTTP请求采样器,而根据您的描述,您只需要将其应用于HTTP Request 1

使同步计时器成为HTTP请求1的子级,它应该可以解决您的问题。

最新更新