jmeter控制器(三)
While Controllert当控制器:
当满足条件的情况下,就会执行控制器里面的脚本,首先我们设置线程组循环次数为10,如下图:
其次在配置元件中添加一个计数器,并设置从0到最大的10,每次递增加1,设置递增数引用名称为num,具体如下图:
设置while控制器条件为:${__javaScript(${num} == 8)},也就是当num等于8时做一次控制器下边的操作,如下图:
在当控制器下边从sampler下添加一个http请求,并在该请求的body Data里面填入一个${num},再添加一个察看结果数便于运行后查看运行情况(为了HPPT请求不一直循环下去,我们在它上级添加一个仅一次控制器,仅一次控制器中什么都不需要添加),具体如下图:
运行后查看结果树如下图:
While的另一个用法:
LAST – 只要有一个请求失败了就会退出循环,不管你后边有多少都不执行了,如下图设置和运行结果:
虽然线程组设置的循环次数为10,运行出现一次请求错误后就不再执行:
例:${num} ==10 判断变量num的值是否为10,不为10则退出循环
${__javaScript(${count}<A&& ${code}=="B")}
表示同时满足 ${count}<A 和${code}=="B" 两个条件才进入循环体
Runtime控制器:
Runtime控制器是控制时间的,如线程组设置循环次数为2,runtime控制器设置时间为10,运行时间就会达到2*10等于20秒,如果线程组设置循环次数为1,runtime控制器设置时间为5,运行时间就会达到1*5等于5秒,如下图:
Runtime控制器既然是控制运行时间的,查看结果数可知道会运行多次,直到达到运行时间以后才停止,如下图:
如果(if)控制器:
If控制器是做接口分支判断的,我们来设置线程组循环10次,计数器从0每次递增1,一直递增到10,当计数器等于2时执行省份与人口,如下图:
设置计数器如下图:
设置if控制器为当引用的计数器num参数为2时执行下属内容,如下图:
并在省份与人口中设置body data为去计数器变量,如下图:
查看结果树可知执行线程组的10次循环时,计数器也随之从0递增到10,当debug sampler正好运行了2次,正好计数器参数等于2,就执行了一次省份与人口,如下图:
如果将if控制器里面的${num}==’2’改成${num}!=’2’,控制器下属的省份与人口会执行9次,也就是说当num不等于2时的条件满足,就不执行,其它情况下会执行。
还有如下的控制器自行琢磨:
Include Controller包含控制器:
Switch Controllert条件控制器:主要做脚本执行顺序所用
录制服务器:是在工作台下的代理服务器里面使用的