Jmeter基础系列-常用的几种逻辑控制器

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:2

Jmeter基础系列-常用的几种逻辑控制器

事务控制器

用于统计测量其作用域内的测试元素(取样器、定时器等)的总体时间,该时间包含事务控制器范围内的所有处理时间,而不仅仅是取样器的处理时间。

Generate Parent Sample: 如果勾选,则事务控制器作为其子样本的父项生成,其子样本将只能在查看结果树下可查看。

Include duration of timer and pre-post processors in generated sample勾选此选项后,事务控制器的计时包括其下的计时器、预处理器、后置处理器的执行时间,而不仅仅是可执行的样本,默认不勾选。


仅一次控制器

仅一次控制器将始终在线程组的第一次迭代时执行。

此控制器通常用于控制需要登入和登出的请求,测试过程中,我们往往都只需要登录获取到对应的登录信息后即可执行后续相关的请求,而不是每执行一个请求都登录一次,如将login请求放入仅一次控制器,则在线程组循环运行期间,不论循环次数设置为多少次,login请求都将仅在第一次执行时运行


循环控制器

控制该控制器下的请求运行请求次数。

如果线程组中设置了持续时间,以持续时间为准,即虽然设置了循环次数,但是到了持续时间则会自动停止,不会执行设置好的次数

总循环次数=线程数*线程组循环次数*循环控制器次数。


Runtime控制器

Runtime控制器是用来控制其子元件的执行时间长度,不控制运行次数。在测试中,当某特定的业务需要执行特定的时间长度时,我们可以使用Runtime控制器,来达到特定的需求。

如果Runtime控制器的控制运行时长超过线程组运行时长,则控制将不会生效。


交替控制器

如果将采样器或逻辑控制器添加到交替控制器,则JMeter将在每个其下的控制器之间交替进行每次循环迭代。

忽略资(子)控制器块:如果勾选,则将子控制器作为一个请求,只执行一次。如果不勾选,则子控制器中样例都执行。这里的子控制器一般指非交替控制器的其他控制器

Interleave across threads:跨线程交替,勾选表示在多个线程中交替执行,既交替控制器中有请求A、B,线程1执行A,线程2执行B,线程3执行A。


If控制器

通过条件来控制是否运行其下面的测试元件(子元素)是否运行,推荐使用${__jexl3(条件表达式)}或者${__ groovy(条件表达式)}。

Interpret Condition as Variable Expression?默认勾选项,将条件解释为变量表达式(需要使用__jexl3 or __groovy 表达式)

Evaluate for all children?条件作用与每个子节点,默认不勾选。勾选了 Evaluate for all children? 意味着它的每个子元素在运行前都会运行一次 if 控制器里面的条件表达式 ,看看是否还是 true,是的话就可以运行,false 就不运行


表达式:

jexl3 or groovy 表达式

${__jexl3(条件表达式)}或者${__ groovy(条件表达式)}


逻辑表达式说明

==

含义:是否等于

例如:如${__jexl3(${ROWS}==1,)},判断${ROWS}变量是否等于1

!=

含义:不等于

例如:如${__jexl3(${ROWS}!=1,)},判断${ROWS}变量是否不等于1

!

含义:非

示例:如${__jexl3(!(${ROWS}!=2),)},对${ROWS}的值不等于2,其判断为真,那么执行IF下的子项。

&&

含义:并且

示例:如${__jexl3(${ROWS}=1 && "${name}" != "性能",)},也就是${ROWS}=1和表达式 "${name}" != "性能"均为真时,执行IF控制器下的子项。

||

含义:或

示例:如${__jexl3(${ROWS}=1 || "${name}" != "性能",)},也就是${ROWS}=1和表达式 "${name}" != "性能"其中一项为真时,执行IF控制器下的子项。

>=

含义:大于等于

示例:如${__jexl3(${count}>=15,)}。也就是${count}>=15,其判断为真,那么执行IF控制器下的子项。

注意:

如果判断表达式是字符串,此时,必须要用引号,变量都默认是字符串的形式,如:${__jexl3("${name}"=="性能",)},不能用${__jexl3(${name}=="性能",)}


While控制器

While 控制器,直到条件为false时,停止运行

当条件满足时,将继续执行该循环控制器的请求。条件不满足时,则跳出循环。

condition 可以填入的值

空白:节点下最后一个 sampler 失败,退出循环

LAST:节点下最后一个sampler失败,退出循环,如果这个失败的 sampler 在循环前就运行失败了,那么【While Controller】将不会执行

其它:当条件等于 false 时退出(或不进入)循环,表达式与if控制器写法一致,while表达式为false,停止运行



Jmeter基础系列-常用的几种逻辑控制器

事务控制器用于统计测量其作用域内的测试元素(取样器、定时器等)的总体时间,该时间包含事务控制器范围内的所有处理时间,而不仅仅是取样...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息