#yyds干货盘点# 常用的Logic Controllers组件简介

幽沉谢世事,俯默窥唐虞。这篇文章主要讲述#yyds干货盘点# 常用的Logic Controllers组件简介相关的知识,希望能为你提供帮助。
Simple Controller组件Simple Controller的组件截图如下,乍一看,感觉没有什么值得注意的参数。确实是的,JMeter发布这个组件的目的,其实不是出于功能的目的,而是出于对脚本组织管理的目的。利用此组件去管理取样器或者其他的逻辑控制组件,会使得脚本看起来更有组织条理性,更直观。

下面就以一个案例来说明Simple Controller组件在测试脚本方面起到的作用。

  • 首先来看该控制组件在创建脚本时的用法,如下图所示,总共有3个Simple Controller,名称如下,这类似于将测试场景分为3个步骤,而每个步骤里又包含了数量不等的取样器(Http Request),通过截图可以发现脚本结构比较清晰,也更便于后期脚本的维护。
  • login
  • view home page
  • logout





Loop Controller组件Loop Controller组件是一个循环控制组件,该组件和Thread Group里的Loop设定是不冲突的,应该说他们是协同配合的关系。该组件控制界面如下,可以看到该组件此时设定的循环次数为3. 该组件的使用场景一般为,如果你想单独设定一些请求循环执行多次时。

以一个脚本案例来说明Loop Controller的用法,其中设置Thread Group的loop数为2,Loop Controller设置为3,那么其中"HTTP Request 2"执行次数为2*3 = 6次,而"HTTP Request 1"的执行次数为2,通过如此,我相信读者对次组件应该有个清晰的认识了。

Once Only Controller组件该组件是针对per thread(即每个虚拟用户),简单来说就是处于该控制组件下的取样器在每个虚拟用户面前只会执行1次,即使比如Loop controller或者线程组内的设定为多个Loop. 此控制组件界面如下

以一个脚本案例来说明Once only controller组件的用法,脚本结构如下,如设置Thread Group的用户数为2,loop为3,那么在“Once only controller”下的取样器(HTTP Request 3)执行次数为2,即等于Thread Group里虚拟用户数一致,也可以理解为每个虚拟用户或者线程只执行1次。



Random Order Controller该组件有点类似Simple Controller,在此组件下的取样器会都被执行最多1次,但是其先后顺序是随机的。其界面如下:

在该组件每次被执行的时候,其内含的请求顺序都被随机执行,如下图的脚本结构,其执行顺序可能是
  1. HTTP Request 3
  2. HTTP Request 1
  3. HTTP Request 2



Runtime Controller组件Runtime Controller组件控制其下的子请求们可以执行的最长时间,如果超过这个时间该组件下的请求的执行将会结束。其界面如下,其目的是为了控制其下的子请求的执行时间不要超过设定的值,比如说请求1执行在运行中响应时间超过了10秒,那么该组件下的取样器执行会结束。



【#yyds干货盘点# 常用的Logic Controllers组件简介】综上所述,这些组件在编写JMeter测试脚本是比较重要的,特别是当测试需求有这方面的要求时,它是为了让用户更轻松简单地达到模拟测试场景的目的。

    推荐阅读