【问题标题】:Extract json in an array in Jmeter在Jmeter的数组中提取json
【发布时间】:2017-11-07 20:08:03
【问题描述】:

如何从Jmeter中的json data下面提取json对象name

[
:   {
:   :   "name":"x",
:   :   "age":"50",
:   :   "gender":"Female"
:   }
]

我在 JsonPath 提取器中执行此 $..name,这在我提取到的变量中给出了这个

name=["x"]

有没有办法在没有数组格式的情况下获得name=x

或者有什么方法可以从["x"] 中提取x

谢谢

【问题讨论】:

  • 您尝试过索引吗? $..name[0]
  • 是的,这不是提取任何东西
  • 那么,用$..name得到数组后试试${name_1}
  • @WiktorStribiżew - 是的,使用 String newName= vars.get("name_1");在beanshell后处理器中给我newName就像x但是当我试图通过${newName}在其他请求中使用newName时,它被传递为${newName},但不是它的值@987654337 @
  • 不应该作为${__V(${newName})}传递吗?

标签: java json regex jmeter jsonpath


【解决方案1】:

在 bean shell 后处理器中使用它可以工作

 String newName = vars.get("name"). replace([","").replace("]","").replace("\"","");
log.info("name is: " +newName);

这给了name is: x

【讨论】:

  • 我发布了自己的答案。无需将我的解决方案包含在您的答案中。
【解决方案2】:

您需要从数组中的 first 对象中获取 name 属性,因此您需要修改 JSON 路径表达式,使其看起来像 $[0].name

参考资料:

【讨论】:

    【解决方案3】:

    你可以使用

     ${name_1} 
    

    在得到数组之后

    $..name
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-18
      • 2015-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多