一 前言:
环境: window 10, Jmeter 5.3
Jmeter中的逻辑控制器下有很多控制器,他们可以分为两类
一类是 是控制其子节点中取样器(sampler)的逻辑顺序执行 如循环控制器
一类是 是用于分组分类或控制子节点的非逻辑执行 如吞吐量控制器
下面记录下控制子节点逻辑顺序的控制器
二 控制子节点逻辑顺序的控制器
1 循环控制器
1.1 例子
如上,在循环控制器下的接口循环执行了3次,未在循环控制器下的接口只执行了一次
2 if 条件控制器
条件判断为True才会执行其子节点
控制器上已经提醒了,为了性能考虑建议勾选Interpret Condition as Variable Expression,并建议使用${__jexl3(xxx)}的表达式来得到一个True/False的结果,或使用一个结果True/False的的变量 如
${__jexl3(${VAR} == xxx)}
${__jexl3("${num}" != "\${num}")} #变量是否已定义且不为null
${__jexl3("${num}" == "\${num}")} #变量是否未定义或为null
${__jexl3(${VAR} == xxx && ${var2} < 9 )}
${JMeterThread.last_sample_ok} # 根据上一个节点是否执行成功来判断是否执行if下的节点
关于Evaluate for all children:默认它是不勾选的,表示只会在刚开始时判断一次。如果勾选了,则会在每个子节点执行前都进行判断,比如判断条件在第一个子节点执行后会发生改变,则后面的子节点执行与否也会变化
2.1 例子
执行结果
3 仅一次控制器
对于其控制器下的子节点,告诉Jmeter每个线程只执行一次。可用于一些登录场景
如果将它放在循环控制器下,则无论循环次数多少,仅一次控制器下的节点只会执行第一次循环
线程组下有loop count(循环次数)和users(线程数)的设置
对于 loop count:无论设置多少,仅一次控制器依然起作用
users: 仅一次控制器是对每一个线程而言, 如果users为n 则仅一次控制器一般而言也会执行n次
3.1 例子
上面的例子稍微改造下
查看结果树
例2 官方的例子稍微改动下
执行
4 随机控制器
每次执行时,会在子节点中随机选择一个执行
4.1 示例
如上 执行了2次,2此中随机控制器下的接口执行都是随机的
随机顺序控制器
该控制器下的每个节点的执行顺序在执行时是随机的
标签:__,控制器,Jmeter,jexl3,逻辑,循环,执行,节点 From: https://www.cnblogs.com/MyRecords/p/17983471