Jmeter解析和Assert Json对象数组

时间:2018-06-07 13:51:44

标签: json jmeter

在Jmeter中尝试从Json对象中提取数据时,一切正常并且效果很好但是,当我有Json对象数组时,无法提取它。

结果是:

[{"id":1,"name":"test"},{"id":2,"name":"test2"}]

这是我的项目JSON Extractor和JSR233 Assertion。enter image description here

enter image description here

在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"} 一切正常。

1 个答案:

答案 0 :(得分:1)

  1. 将您的JSON Path表达式更改为:$..id..deep scan运算符,因此它将返回所有id个属性值。
  2. 将匹配号更改为-1
  3. 它将产生以下变量:

    id_1=1
    id_2=2
    id_matchNr=2
    

    我不知道你需要断言的是什么,希望你能够自己修改你的Groovy脚本。

    另请注意,自JSON Assertion以来可以使用JMeter 4.0测试元素,因此您不需要单独的提取器和断言元素。