1,如果(If)控制器
常用控制器之一,主要对条件进行判断,为true才执行,false则不执行。
if逻辑控制器控件中最重要就是Expression(must evaluate true or false)输入框,此处需要写入需要进行判断的表达式,从must evaluate true or false可知,实际使用时,只能填入true或者false这样的值,因此我们需要借助其他模块或者函数将需要进行判断的表达式(如 {var}== 5这样的表达式写入Expression中是无效的。
从该控制器提示的信息中,可以借助__jexl3或者__groovy函数来计算表达式的值
如图所示:
image.png
image.png
可以看到并没有运行。
image.png image.png image.png image.png
JEXL Expression to evaluate:此处直接填写需要进行判断的表达式即可
表达式支持:
== 是否等于,如{VAR}==1,)},判断${VAR}变量是否等于1
!= 不等于,如{VAR}!=1,)},判断${VAR}变量是否不等于1
! 非,如{VAR}!=1),)}对${VAR}!=1的结果取反
&&或|| 且与或,如 {VAR}==1 && ${name} != "heima",)}
image.png或者>== 大于等于,如{count}>=10,)}
重点来了
image.png
以上四种方法只能判断数学关系和字符串是否等于或者不等于,那么怎么判断字符串是否包含的关系的呢??这种判断在实际使用中会有很高的频率,可惜网上资料并不是很多。
咱们可以这样,indexOf()函数
image.png
原理是这个函数可以返回字符串的位置,如果>=0,说明就被包含,如果返回的是 -1,那就说明不包含
2,While控制器
常用控制器之一。用作循环的控制器里, 最常用的就’循环控制器’和’While控制器’. 循环控制器仅能定义循环次数(永远和自定义次数). 缺乏判断能力.While控制器正好弥补了这方面的不足, 既能循环又能逻辑判断, 让我们进入实例吧.
.1首先我们来添加While控制器, 可以看到仅有一个Condition条件
image.png
我们先不加任何判断,执行。
image.png
可以看到他的循环次数就是线程组的循环测试。
那怎么能够利用While的判断来控制呢? 继续往下看.
1,在http请求中为运行次数赋值
image.png
2,在while条件判断中判断
image.png
3,运行:
image.png
这里要注意:if如果控制前里面可以判断ture 或者fasle就好了,例如1==1。但是while必须是对变量或者函数返回值进行判断的ture或者false。
4,ForEach控制器
字面意思为一遍一遍的循环设置的变量。常用场景可以如下:
用户设置了不少变量,咱们需要每次请求使用一次变量:
image.png
我们使用ForEach控制器来操作:
image.png
运行结果查看:
循环运行,并且每次都取到了变量的值
image.png
image.png
网友评论