【问题标题】:Jmeter parse and Assert Array of Json objectsJmeter解析并断言Json对象数组
【发布时间】:2018-06-07 13:51:43
【问题描述】:

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

【问题讨论】:

    标签: json jmeter


    【解决方案1】:
    1. JSON Path 表达式更改为:$..id..deep scan 运算符,因此它将返回所有 id 属性值。
    2. 将匹配号更改为-1

    会产生以下变量:

    id_1=1
    id_2=2
    id_matchNr=2
    

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

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

    【讨论】:

    • 我想检查 Json 中的任何属性是否为空或空。刚刚添加了 $..id 和 -1 现在响应改变了。示例答案为空
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-27
    • 1970-01-01
    • 2011-08-04
    相关资源
    最近更新 更多