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

使用JSON Extractor同时提取关联的id、field_type及allowed_otypes首个值的性能测试脚本问题求助

使用JSON Extractor同时提取关联的id、field_type及allowed_otypes首个值的性能测试脚本问题求助

嗨,我完全懂你的痛点——单独提取这三个值很容易出现“各取各的”导致值不匹配的情况,毕竟它们属于同一个JSON对象,必须保证同时从同一个对象里取值才不会出错。下面我给你具体的解决方案,以性能测试常用的JMeter为例:

核心思路

用单个JSON Extractor同时提取这三个关联字段,通过统一的匹配规则确保它们来自同一个JSON对象,避免单独提取时的错位问题。

具体配置步骤

  1. 在返回你提供的JSON响应的请求(比如HTTP请求)下方,添加一个「JSON Extractor」(右键请求 → 后置处理器 → JSON Extractor)
  2. 按以下内容配置:
    • JSON Path Expressions(每行一个表达式,对应三个字段):
      $.[*].id
      $.[*].field_type
      $.[*].allowed_otypes[0]
      
      解释:$.[*]表示遍历JSON数组里的所有对象,.id取对象的id属性,.allowed_otypes[0]专门取该数组字段的第一个元素
    • Names of created variables(给每个提取的字段指定变量名,用逗号分隔):
      field_id,field_type,allowed_otype
      
    • Match No.(0 for Random):如果要取第一个对象的三个值,填1;如果需要遍历所有对象做参数化,填-1;随机取的话填0
    • Default Values(可选,用来标记提取失败的情况):
      ID_NOT_FOUND,TYPE_NOT_FOUND,OTYPE_NOT_FOUND
      

后续采样器中使用变量

配置完成后,你就可以在后续的请求中直接引用这三个变量,它们肯定来自同一个JSON对象:

  • 引用id:${field_id}
  • 引用field_type:${field_type}
  • 引用allowed_otypes的第一个值:${allowed_otype}

比如在HTTP请求的参数里,你可以这样填写:

  • 参数名:id → 值:${field_id}
  • 参数名:field_type → 值:${field_type}
  • 参数名:allowed_otype → 值:${allowed_otype}

为什么这样能解决问题?

单独提取时,你可能分别对id、field_type写了提取规则,万一响应里的对象顺序变化,或者某个提取器的匹配规则不一致(比如一个取第一个,一个取第二个),就会导致值不匹配。而用同一个JSON Extractor统一配置,所有字段都遵循同一个Match No.规则,就绝对能保证三个变量来自同一个JSON对象。

备注:内容来源于stack exchange,提问作者deepu reddy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 11:59:28