【问题标题】:Debugging with Gatling - println if status is 500使用 Gatling 进行调试 - println 如果状态为 500
【发布时间】:2019-05-04 22:47:52
【问题描述】:

我正在测试 Play 的性能!包含许多 GET/POST API 的应用程序。我想做一些调试,因为一个单独的测试神秘地失败了数百个(并且只有在整个测试运行时才会失败)。如果返回的状态为500,如何有条件地添加println?

我尝试了以下方法,但由于session.status 不是 Int,它不起作用(即它总是返回 false)。此外,我认为检查session.status 甚至不是正确的做法,因为当我为每次通话打印出session.status 时,它只会吐出一堆OK 行(甚至不是SEE_OTHER 或类似于我希望成功运行的东西),但我不确定替代方案是什么。

val postData: ChainBuilder = exec(http(s"[POST] Data sent to API")
  .post(s"$baseUrl/post-data")
  .formParam("id", s"$${id}")
  .check(status.is(303))
  .disableFollowRedirect)
  .exec {
    session =>
      if (session.status == 500) {
        println(session.attributes("id")) // whatever
      }
      session
  }

我不知道该怎么做if 检查,或者把它放在哪里。如何根据结果的status 有条件地检查测试中的某些数据?

【问题讨论】:

    标签: scala performance-testing gatling scala-gatling


    【解决方案1】:

    你正在努力做到这一点。 Gatling 使用 Log4J 基础架构具有良好的日志记录,但互联网上的大多数地方都告诉您使用 log4j.xml 文件,但我认为这比使用 Scala 代码在测试中启用 Gatling 调试更难:

    这只是一个例子。您可以将其简化并在 Gatling 测试开始时添加此代码:

      val LOG_LEVEL = sys.env.getOrElse("LOG_LEVEL", "WARN")
    
      val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext]
    
      if (LOG_LEVEL.equals(Level.TRACE)) {
        context.getLogger("io.gatling.http.engine.response").setLevel(Level.valueOf(LOG_LEVEL))
      } else if (LOG_LEVEL.equals(Level.DEBUG)) {
        context.getLogger("io.gatling.http.engine.response").setLevel(Level.valueOf("DEBUG"))
      } else {
        context.getLogger("io.gatling.http").setLevel(Level.valueOf("INFO"))
      }
    

    【讨论】:

      【解决方案2】:

      试试下面的内容

      exec(Actions.Job()).pause(Configuration.THINK_TIME_AFTER_PUT second)
      .asLongAs(session => (session("responseStatus").as[String], session("statusCode").as[Int], session("reqInfo").as[String])) {
                println ("test")
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-07-19
        • 1970-01-01
        • 2021-06-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多