JMeter 3.3中如何用Groovy为IF Controller添加逻辑运算符?
解决JMeter中JEXL3条件添加AND/OR逻辑的问题
嘿,我明白你卡在哪了!你之前把两个__jexl3函数用&&拼接的方式不对——JMeter的函数调用是独立执行的,拆分的写法没法让逻辑被正确合并成一个完整表达式。正确的做法是把所有逻辑条件都塞进同一个__jexl3函数的参数里,用JEXL3本身支持的逻辑运算符来组合判断。
给你举两个具体的正确写法:
- 要实现「响应码既不是000也不是901」的AND逻辑:
${__jexl3(${code} != '000' && ${code} != '901')} - 要实现「响应码是000或者901」的OR逻辑:
${__jexl3(${code} == '000' || ${code} == '901')}
这里有个很重要的细节:一定要给000、901加上单引号。因为你从响应里提取的${code}基本都是字符串类型,如果不加引号,JEXL3会把它们当成数字解析(比如000会被识别成数字0),这就会导致判断结果和预期不符。
另外,既然你在用Groovy,其实也可以直接用Groovy表达式写条件(JMeter的If Controller支持选择Groovy作为语言),写法会更直观:
- AND逻辑:
vars.get("code") != "000" && vars.get("code") != "901" - OR逻辑:
vars.get("code") == "000" || vars.get("code") == "901"
这种方式不需要嵌套__jexl3函数,Groovy的语法也更灵活,适合处理更复杂的判断逻辑。
内容的提问来源于stack exchange,提问作者eeadev
相关产品推荐
相关产品推荐

