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

如何用JMeter JSON Extractor提取符合条件的随机rid

JMeter JSON Extractor 配置:提取符合条件的随机rid

步骤1:添加并配置JSON Extractor

  1. 右键目标请求,选择「添加」→「后置处理器」→「JSON Extractor」
  2. 填写以下参数:
    • 引用名称:valid_rids(自定义变量前缀,后续生成的变量会以此开头)
    • JSON Path表达式:$..Documents[?(@.rid != 0 && @.Name =~ /^Test.*/)]
      • 表达式说明:
        • $..Documents:遍历返回结果中所有Documents数组的元素
        • @.rid != 0:排除rid值为数字0或字符串"0"的项
        • @.Name =~ /^Test.*/:匹配Name字段以Test开头的项(正则^Test.*表示以Test起始,后续可接任意字符)
    • 匹配数字:-1(设置为-1会提取所有符合条件的结果,自动生成valid_rids_1、valid_rids_2这类变量,同时valid_rids_matchNr会记录符合条件的结果总数)
    • 默认值:NOT_FOUND(无符合条件结果时返回该值,便于排查问题)

步骤2:获取随机的符合条件rid

在后续需要使用rid的地方,用JMeter内置函数组合生成随机值:

${__V(valid_rids_${__Random(1,${valid_rids_matchNr},random_index)})}
  • 拆解说明:
    • ${__Random(1,${valid_rids_matchNr},random_index)}:生成1到符合条件结果总数之间的随机整数,并存入random_index变量
    • ${__V(valid_rids_${random_index})}:通过变量名拼接,取出对应位置的rid值

额外注意事项

  • 如果接口返回的键名存在大小写差异(比如示例中的rId和rid),需要修改JSON Path表达式兼容:
    $..Documents[?((@.rid != 0 || @.rId != 0) && @.Name =~ /^Test.*/)]
    
  • 若需要忽略Name的大小写匹配,可给正则添加i标志:/^Test.*/i

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 19:23:20