在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的主要内容,如果未能解决你的问题,请参考以下文章