首页 文章

JMeter:使用If Controller同步计时器

提问于
浏览
0

我的要求是我希望10个用户登录(使用CSV登录凭据)同时登录5个用户,每个用户根据登录的用户遍历不同的路径 . 以下是我的测试计划:
Test Plan

下面是同步我使用的计时器设置:
synchronizing Timer settings

由于每个主要请求都有多个并发子请求,因此我希望将所有JS,css,图像文件的请求作为一个父请求放入事务控制器中 . 我正在考虑在每个交易控制器中包含所有请求的请求:
Requests clubbed within transaction controller

根据我的测试计划,如果我的理解是正确的,那么第一个用户将登录并且请求继续到User1的“If controller” . 这里的请求将等待5个请求按照同步定时器中的设置排队,并且所有5个请求将一次发送到服务器 . 然后第二个用户将登录并处理第二个用户的请求,依此类推 .

如果未使用同步计时器,则上述测试计划成功执行 . 一旦我使用同步计时器,我的测试计划执行将无限期地继续 .

根据我对同步计时器的理解,处理应该继续,因为我使用了200000毫秒的超时值 . 我无法理解为什么使用同步计时器测试计划挂起 .

我真正想要的是首先所有10个用户应该登录5个同时登录,然后每个用户按照If控制器中指定的条件继续他们各自的请求($ {__ groovy(vars.get(“username”)==“user1 “)}),同时有10个请求 .

那么,我如何设计我的测试计划以及使用同步计时器来实现所需的结果?

我将非常感谢经验丰富的JMeter专家的投入 . 谢谢!

1 回答

  • 1

    当10个用户进入if控制器时,您似乎希望同步计时器能够正常工作 .

    因为Timers在范围内的每个Samplet之前执行,

    在每个采样器发现它们的范围之前处理定时器;

    在您的情况下,您只需要在控制器内的请求1下移动计时器 .

    目前您正在尝试同步流中的所有采样器,您无需等待每个采样器

相关问题