Once Only Controller不管线程组设置多少次循环,它下面的节点都只会执行一次。
字段介绍
属性 | 描述 | 必填 |
---|---|---|
Name | 显示的控制器的描述性名称,可以自定义 | 否 |
Comments | 注释,描述在业务中的作用 | 否 |
如我们创建了一个包含两个HTTP请求的线程的测试计划。每个线程向主页发送一个请求,然后向Bug页面发送三个请求。尽管我们将线程组配置为迭代3次,但是只发送一个请求到到主页,因为此请求位于Once Only 控制器中。JMeter线程将按以下顺序发送请求:Home Page,Bug Page,Bug Page,Bug Page。
如果把Once Only控制器放在其它循环控制器下,那么它将始终在该循环父控制器的第一次迭代期间执行。
我们创建了一个“测试计划”,该计划仅发送一次特定的HTTP请求(登录)一次,并发送五次其他HTTP请求(评论)。
配置一个线程组,并且循环计数值为2,使用两个控制器Once Only控制器和Loop控制器,您可以看到我把Once Only控制器和评论请求放在了Loop控制器下,然后把登录请求放在了Once Only控 制器下,并且循环控制器配置的循环计数值为5。
那么JMeter将按照以下顺序发送请求:登录–评论0–评论1–评论2–评论3–评论4;登录–评论0–评论1–评论2–评论3–评论4,如下图所示:
使用场景
项目中较常用的场景是登录,一个用户登录一次之后可以执行其他更多的操作。