在Jmeter中尝试从Json对象中提取数据时,一切正常并且效果很好但是,当我有Json对象数组时,无法提取它。
结果是:
[{"id":1,"name":"test"},{"id":2,"name":"test2"}]
这是我的项目JSON Extractor和JSR233 Assertion。
在Groovy脚本里面我创建了log.info,但它没有捕获JSON Extraxtor中描述的变量值。
String id = vars.get("id");
log.info ("The example answer is " + id);
if (id == ""){
AssertionResult.setFailureMessage("The id is null");
AssertionResult.setFailure(true);
}
请注意,如果Json回复看起来像这样{"id":1,"name":"test"}
一切正常。
答案 0 :(得分:1)
$..id
。 ..
是deep scan运算符,因此它将返回所有id
个属性值。 -1
它将产生以下变量:
id_1=1
id_2=2
id_matchNr=2
我不知道你需要断言的是什么,希望你能够自己修改你的Groovy脚本。
另请注意,自JSON Assertion以来可以使用JMeter 4.0测试元素,因此您不需要单独的提取器和断言元素。