Jmeter添加while控制器
通过添加while控制器,可以实现条件+循环判断,使while控制器内的子线程根据之前线程的返回(while控制器内外变量皆可)进行触发+循环的控制。
原理如下:通过Condition判断条件语句是否为真,此处需注意和if控制器的机制不同。
If控制器只需要比对基本数值,而while控制器则需要比对条件的true和false。所以需要编写如下格式的语句。
${__javaScript("${Data_1_g3}" !== "4")}
上图中语句意义为比对变量Data_1_g3的值是否不为4。如果是4,则跳出while控制器,如果不是4,则持续执行while控制器下所有的内容,直到出现4为止。
若使用多重条件,是和if不同的,此时强烈不建议使用计数器作为循环次数限制(会出现次数设置为大于10时的触发问题,以及各种随机问题,极度不稳定!):
${__javaScript("${login_code}" == "-1" && "${num}" != "10")}
若需要给while控制器增加次数限制,建议使用系统属性${__jm__RE__idx}进行判断:
${__javaScript("${status}" !== "wait" && "${status}" !== "completed" && "${plan_name_matchNr}" == "1" && "${__jm__DRS_2__idx}" != "${j_Time}")}