在Jmeter的数组中提取json

Posted

技术标签:

【中文标题】在Jmeter的数组中提取json【英文标题】:Extract json in an array in Jmeter 【发布时间】: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)传递吗? 【参考方案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

参考资料:

JsonPath - Getting Started JMeter's JSON Path Extractor Plugin - Advanced Usage Scenarios

【讨论】:

【参考方案3】:

你可以使用

 $name_1 

在得到数组之后

$..name

【讨论】:

以上是关于在Jmeter的数组中提取json的主要内容,如果未能解决你的问题,请参考以下文章

jmeter中json提取器和断言器的简单用法

Jmeter之JSON提取器获取数组类型的数据

jmeter中用json提取器提取响应数据中的多个值

jmeter中数组循环并进行判断

jmeter解析response里的json对象和数组

Jmeter 后置处理器JSON Extractor 提取json的多个值