jmeter中的Groovy响应断言脚本问题

时间:2019-06-19 07:50:14

标签: groovy jmeter jmeter-4.0

我想使用groovy脚本编写用于响应声明的代码,用于响应数据,如下所示:

[
    {
        "fieldId":"947bb60f",
        "id":"e7b8ad2b",
        "name":"field",
    }
]

尝试使用下面的错误代码(失败消息)的常规脚本。

if (!jsonResponse.keySet().containsAll(["fieldId","id","name"] )) {
         failureMessage += "The json response body has wrong structure or error msg.\n\n";

}

相同的脚本可以很好地与下面的单个树结构一起工作。用groovy脚本感谢您的帮助。

[

  "fieldId":"947bb60f",
  "id":"e7b8ad2b",
  "name":"field",

]

1 个答案:

答案 0 :(得分:0)

因此,您将获得返回的项目列表(包含一个项目)

假设您不希望有一件以上的商品,可以使用以下方法查看其大小:

if (jsonResponse.size() != 1) {
     failureMessage += "Expected one item, got ${jsonResponse.size()}.\n\n";
}

然后,您可以使用以下方法获取第一个元素:

def jsonElement = jsonResponse[0]

并使用以下命令检查字段名称:

if (jsonElement.keySet() != ["fieldId","id","name"] as Set) {
     failureMessage += "Unexpected fields in response ${jsonElement.keySet()}.\n\n";
}