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为止。 

强烈不建议使用计数器作为循环次数自动跳出开关(会出现次数设置为大于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}")}

注:不建议使用包含大于和小于的条件语句进行判断,因为存在和if控制器相同的判断混乱问题。(包括GUI模式和Non-GUI模式,参考本博客的if控制器章节的备注)

 

posted @   子小逗子  Views(335)  Comments(0Edit  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示