json - JMeter:JSON 路径表达式 - 使用多个条件提取 JSON 块
问题描述
我想提取满足多个条件的 JSON 块。例如,提取具有两个或多个期望值的变量的块。请参阅下面给出的示例。
[
{
id:"1",
name:"ABC - Project 1",
appName:"XYZ",
state:"New",
appType:"owner",
date:"May 12"
},
{
id:"2",
name:"DEF - Project 2",
appName:"UVW",
state:"In Progress",
appType:"manager",
date:"May 13"
},
{
id:"3",
name:"GHI - Project 3",
appName:"RST",
state:"In Progress",
appType:"owner",
date:"May 12"
},
{
id:"4",
name:"JKL - Project 4",
appName:"OPQ",
state:"Expired",
appType:"entity owner",
date:"July 13"
}
]
从上面的 JSON 中,我想提取 JSON 块,其中 state:"In Progress" 或 state:"New",这两种状态之一,它应该是 appType:"Owner" 以及 name:... Project 1; 即以下块作为输出:
{
id:"1",
name:"ABC - Project 1",
appName:"XYZ",
state:"New",
appType:"owner",
date:"May 12"
}
我应该使用哪些 JSON 路径表达式来提取:
$.[?((@.state == "In Progress" || @.state == "New") && @.appType== "owner" && <some regex expression>)]
但它不会提取任何结果。有没有办法为“OR/||”使用多个条件 和“AND/&&”条件来提取该特定块。请帮忙!
谢谢, 席德
解决方案
你的表达对我来说很好:
因此,您可能需要仔细检查:
- jmeter.log 文件中的任何可疑条目,例如
Error processing JSON content in JSON Extractor
- JMeter 变量的值取决于您的 JSON 提取器配置,这些值可能会写入带有索引的变量中,即您期望
FOO
但您得到FOO_1
和FOO_2
,可以使用Debug Sampler 和 View Results Tree 侦听器组合来完成
推荐阅读
- javascript - 如何将 3 个数组合并为一个具有相同索引的数组 - JavaScript
- python - 为什么我在 Edge 上获得的 ResourceWarning 比在 Chrome 上更多?
- ansible - Ansible - 如何在复制到远程之前在 localhost 中压缩文件
- javascript - Flickity - 如何删除最后一个单元格?
- c++ - 具有抽象父级的模板类的c ++通用lambda
- c++ - 如果内存池比 malloc 快,为什么 malloc 不在幕后使用它们?
- css - CSS 叠加、淡入淡出和过渡
- c# - 如何在asp.net mvc中将字段从数据库添加到DropDowList
- node.js - Nest JS 构建不生成 dist 文件夹
- c++ - 无法弄清楚向量的数据在哪里丢失