You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JMeter中条件触发XPath Extractor与JSR223 Sampler?

解决JMeter仅在HTTP请求成功时执行XPath提取器和JSR223采样器的问题

要实现仅当HTTP请求执行成功时才触发XPath Extractors和JSR223 Sampler,可通过以下两种方案解决:

方案一:给组件添加条件判断

针对XPath Extractors

  1. 打开XPath Extractor的配置界面
  2. 在「Apply to」区域选择「Main Sample Only」,确保只作用于目标HTTP请求
  3. 勾选「Use Tester」选项,在「Tester」输入框中填入:${JMeterThread.last_sample_ok}
    • 这个内置变量会在HTTP请求成功时返回true,失败时返回false,只有变量为true时,XPath提取器才会执行

针对JSR223 Sampler

在JSR223 Sampler的脚本开头添加如下判断逻辑,直接跳过失败场景的执行:

// 检查前一个采样器(HTTP请求)是否成功
if (!ctx.getPreviousResult().isSuccessful()) {
    return; // 终止脚本执行
}

// 原有业务脚本写在此处

方案二:使用If Controller控制组件执行

  1. 添加一个Transaction Controller,将目标HTTP请求、XPath Extractors和JSR223 Sampler全部移入其中
  2. 禁用Transaction Controller的「Include duration of timer and pre-post processors in generated sample」选项
  3. 在HTTP请求之后添加一个If Controller,将XPath Extractors和JSR223 Sampler移入If Controller内
  4. 设置If Controller的条件为:${JMeterThread.last_sample_ok}
    • 只有当HTTP请求成功时,If Controller才会触发内部组件执行

补充说明

  • JMeterThread.last_sample_ok是JMeter内置变量,无需额外定义,可直接使用
  • 若HTTP请求涉及重定向,需确保「Follow Redirects」等请求配置符合业务预期,避免误判请求成功状态

内容的提问来源于stack exchange,提问作者Entrepreneur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 03:24:22