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

如何评价豆壳中的不等号?

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

    我试图在bean shell的if条件中评估一个not equals,但是逻辑似乎是正确的。我没有得到预期的结果。

    这是用于jmeter中的bean shell后处理器

    r = ctx.getPreviousResult().getResponseCode();
    
    if (!r.equals(200))
    {
      log.info("vin IS --> "+"${vin}");
      p.println(r +","+ "${vin}" + ",");
    }
    

    我打算只打印非200响应代码,但它也打印200响应代码。

    事先谢谢你的帮助

    2 回复  |  直到 7 年前
        1
  •  1
  •   UBIK LOAD PACK    7 年前

    代码:

    如果(!)R.等值(200)

    应该是:

    如果(!)R.等于(“200”))

    顺便说一句,您不应该再使用beanshell了,更喜欢JSR223测试元素+groovy,如下所示:

        2
  •  1
  •   Dmitri T    7 年前
    1. 你在比较 String 用一个 Integer ,首先需要将其强制转换为整数,如下所示:

      r = Integer.parseInt(ctx.getPreviousResult().getResponseCode());
      
    2. 你用的是豆壳 some form of performance anti-pattern . 对于任何形式的脚本,建议使用JSR223测试元素和groovy语言作为 Groovy has much better performance comparing to Beanshell .
    3. 你在内联 JMeter Variables 在脚本中,它不是非常安全,因为变量可能会分解为导致编译失败或意外行为的内容。此外,对于groovy变量,要么只解决一次,要么与 GString templates / compilation caching 特征。所以考虑改变:

      log.info("vin IS --> "+"${vin}");
      

      log.info("vin IS --> "+vars.get("vin"));