【问题标题】:JMeter: JSON path expressions - Extract JSON blocks using multiple conditionsJMeter: JSON 路径表达式 - 使用多个条件提取 JSON 块
【发布时间】:2020-11-03 20:19:18
【问题描述】:

我想提取满足多个条件的 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/&&”条件来提取该特定块。请帮忙!

谢谢, 席德

【问题讨论】:

    标签: json jmeter load-testing stress-testing jmeter-5.0


    【解决方案1】:

    你的表达方式很适合我:

    所以您可能需要仔细检查:

    【讨论】:

    • 谢谢,它现在对我有用。但现在的问题是,如果我想使用正则表达式从 JSON 块中选择一个名称,例如,如果名称:项目 1 - Hello World 并且我想使用“Hello World”进行识别,我可以使用 JSON 路径吗?表达? $.[?((@.state == "In Progress" || @.state == "New") && @.appType== "owner" && <some regex function>)]
    猜你喜欢
    • 2020-11-05
    • 2020-11-26
    • 1970-01-01
    • 1970-01-01
    • 2022-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多