我们怎样才能在Jmeter中使用Beanshell验证Json响应?

时间:2017-03-15 06:12:54

标签: jmeter beanshell

  

我将Json作为回应。   我想在单个beanshell中检查它,而不是使用多个jsonPath_assertion。   每次我得到不同值的响应。

2 个答案:

答案 0 :(得分:2)

我建议改用JSR223 AssertionGroovy language

Groovy内置了JSON support,因此您可以使用JsonSlurper类来解析响应,如:

def json = new groovy.json.JsonSlurper.parseText(prev.getResponseDataAsString())
// do what you need here

除了Groovy比Beanshell表现更好,并且recommended使用它来在JMeter中编写脚本。有关详细信息,请参阅Groovy Is the New Black

答案 1 :(得分:1)

  

你可以使用beanshell断言。它会帮助你很多。   prev.getResponseDataAsString()将以字符串形式返回您的json响应。   我希望您将使用Jsonpath在线评估程序来评估json响应。   假设我的json在线评估代码看起来像这样$.items[2].CM_SEQNUMBER   在beanshell断言中,我使用了

 JsonObject jsonobj = JsonObject.readFrom(jsonString);
    JsonArray jsonarr = jsonobj.get("items").asArray();
    String pickupToCheck=jsonarr.get(2).asObject().get("CM_SEQNUMBER").asString();
  

同样,您可以使用单个beanshell断言验证您的JSON数据,而无需使用多个JSONPath Extractor。