代码之家  ›  专栏  ›  技术社区  ›  Varun

如何在BeanShell中验证json响应,并在响应与jmeter中预期的不一致的情况下执行一些操作?

  •  0
  • Varun  · 技术社区  · 7 年前

    我想在jmeter中提取json响应,如果响应不符合预期,我需要将其打印到csv文件中。

    此处的示例代码:

    log.info(ctx.getPreviousResult().getResponseDataAsString());
    
    r = ctx.getPreviousResult().getResponseCode();
    
    d = ctx.getPreviousResult().getResponseDataAsString();
    
    if(!d.contains("valid")){
    
    p.println(r +","+ vars.get("email") +",");
    
    }
    

    这是我的json响应

    {
         "isBlueLinkServicePinValid": "valid"
    }
    

    我正在检查关键字“valid”

    if(!d.contains("valid"))
    

    短暂性脑缺血发作

    1 回复  |  直到 7 年前
        1
  •  1
  •   Dmitri T    7 年前
    1. Since JMeter 3.1 it is not recommended to use Beanshell for scripting ,您应该转而使用JSR223测试元素和Groovy语言。主要原因是, Groovy has much better performance than Beanshell

    2. Groovy has built-in JSON support isBlueLinkServicePinValid 属性值以一种简单的方式:

      String response = prev.getResponseDataAsString();
      log.info("Response: " + response)
      String valid = new groovy.json.JsonSlurper().parseText(response).isBlueLinkServicePinValid
      log.info("Valid: " + valid);
      if (valid.equals("valid")) {
          log.info("Do something");
      }
      else {
          log.info("Do something else");  
      }
      

      enter image description here