我正在对 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/