如何基于status为Ready for Review条件用JSON Path提取器提取指定值
JMeter JSON响应字段提取解决方案
原有配置问题说明
当前配置存在三处明显问题:
- JSON Path表达式语法错误,
$.[?多了多余的.符号 - 原表达式返回的是符合条件的完整节点对象,而非你需要的
currentApproversStr字段值 - 多条件判断冗余,可通过
in操作符简化写法
修正后的配置方案
- 生成变量名:保持
currentApproversStr即可 - JSON Path表达式:
如果你不需要限定审批人范围,只要status为Ready for Review就提取对应字段,直接使用:
如果你确实需要限定$[?(@.status == "Ready for Review")].currentApproversStrcurrentApproversStr为指定的5个值,使用简化后的表达式:$[?(@.status == "Ready for Review" && @.currentApproversStr in ["Validation, Civa", "Validation, Darla", "Validation, Bittl", "Validation, Cha", "Validation, Barnett"])].currentApproversStr - 匹配编号设置:
- 若同一时间接口只会返回1个符合条件的节点,填
1即可,无需关注节点在数组中的位置,JSON提取器会自动匹配到首个符合条件的字段值,直接赋值给currentApproversStr变量 - 若可能存在多个符合条件的节点,填
-1,提取器会生成currentApproversStr_1、currentApproversStr_2...系列变量,同时生成currentApproversStr_matchNr变量存储符合条件的总数量,后续采样器可按需引用对应序号的变量
- 若同一时间接口只会返回1个符合条件的节点,填
配置验证方法
在JSON提取器后添加Debug Sampler,运行测试后查看Debug Sampler的响应内容,确认currentApproversStr相关变量的值是否符合预期即可。
注意事项
- JSON提取器的「Apply to」选项选择
Main sample only - 后续HTTP采样器引用变量时使用
${currentApproversStr}格式即可(多结果场景替换为对应序号的变量名)
内容的提问来源于stack exchange,提问作者Chinni
相关产品推荐
相关产品推荐

