scala - 使用 Gatling 进行调试 - 如果状态为 500,则打印 ln

标签 scala performance-testing gatling scala-gatling

我正在对 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 有条件地检查测试中的某些数据?

最佳答案

试试下面的方法

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")

}

关于scala - 使用 Gatling 进行调试 - 如果状态为 500,则打印 ln,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53597189/

相关文章:

performance-testing - Gatling(性能测试):how to perform task in background every x-minutes

scala - 如何检查 Gatting/Scala 中是否存在属性

scala - 什么时候应该使用应用程序而不是单子(monad)?

scala - 如何在 sc.textFile 中加载本地文件,而不是 HDFS

ios - 如何自动为 iOS 应用创建性能报告?

http - Tomcat 和 JMeter 生成 HTTP 404 错误

Scala 对按名称调用参数的隐式转换的工作方式因函数是否重载而异

scala - liftweb - 更改基本 url

javascript - 如何测量谷歌地图的加载时间

scala - 在 Gatling 中请求超时