JMeter的 If控制器没有考虑基于正则表达式提取器得到的变量条件

后端开发 2026-07-12

我在JMeter中定义一个if条件。每当正则表达式提取器中定义的变量包含一个值时,只有在这种情况下才触发下一个HTTP请求。可是IF条件无法识别,导致HTTP无法执行。

Thread Group
  Single Controller
    HTTP Request 1
    Regular Expression Extractor
    IF Controller
      HTTP Request 2

正则表达式提取器从响应主体中取出一个值 "po_atid"

IF控制器 "${po_atid}" != "" && "${po_atid}" != "NOT_FOUND"

但IF条件根本不会成立。即使po_atid具有正确的值,HTTP请求2 也永远不会被执行。

解决方案

如果表达式字段中的 函数或变量 的结果等于 true,IF控制器才会执行其子项。

因此,你需要将表达式包裹成例如 __jexl3() 函数 的形式,如下:

${__jexl3("${po_atid}" != "" && "${po_atid}" != "NOT_FOUND",)}

更多信息:6 Tips for JMeter If Controller Usage

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章