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

如何让JMeter的JSON Extractor仅在满足条件时执行提取操作?

在JMeter中条件触发JSON Extractor的方法

方法一:用If Controller控制执行时机

  • 先添加一个JSON Extractor,用来提取totalRecords的值:
    • 变量名:total_records
    • JSON Path表达式:$.totalRecords
    • 匹配数字:0
    • 默认值:0
  • 添加If Controller,设置条件为:${__jexl3(${total_records} != 0,)}
  • 把需要提取ticketId的JSON Extractor拖到这个If Controller下面。这样只有当totalRecords不等于0时,提取操作才会执行,避免因数据不存在导致采样器异常。

方法二:用JSR223 PostProcessor实现条件提取

如果需要更灵活的逻辑,推荐用Groovy脚本处理:

  • 添加JSR223 PostProcessor,选择Groovy语言,写入以下脚本(根据你的JSON结构调整路径):
import groovy.json.JsonSlurper

def response = prev.getResponseDataAsString()
def json = new JsonSlurper().parseText(response)

// 判断totalRecords不为0时才提取ticketId
if (json.totalRecords != 0) {
    def ticketId = json.ticketId // 替换成实际的JSON路径,比如$.data.ticketId
    vars.put("ticket_id", ticketId.toString())
}
  • 脚本会先检查totalRecords的值,符合条件才提取并存储变量,不会因数据缺失报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 09:04:52