用 Gatling 收集错误?
Collect errors with Gatling?
在我冗长但简单的很棒的 Gatling 模拟中,我几乎没有以错误 500 结尾的响应。是否可以告诉 gatling 在模拟期间将这些错误响应消息收集到一个文件中?
生产模式下没有。只有在启用调试日志记录时才会有它们。
可以收集任何你想要的东西并将其保存到 simulation.log 文件中。定义协议时使用 extraInfoExtractor 方法:
val httpProtocol = http
.baseURL(url)
.check(status.is(successStatus))
.extraInfoExtractor { extraInfo => List(getExtraInfo(extraInfo)) }
然后在您的 getExtraInfo(extraInfo: ExtraInfo) 方法中定义您想要的任何条件。下面的示例输出请求和响应,如果通过 Java 系统 属性 启用调试,或者响应代码不是 200,或者请求状态是 KO(如果您设置了一些最大时间,则可以是 KO,这最大时间增加)
private val successStatus: Int = 200
private val isDebug = System.getProperty("debug").toBoolean
private def getExtraInfo(extraInfo: ExtraInfo): String = {
if (isDebug
|| extraInfo.response.statusCode.get != successStatus
|| extraInfo.status.eq(Status.valueOf("KO"))) {
",URL:" + extraInfo.request.getUrl +
" Request: " + extraInfo.request.getStringData +
" Response: " + extraInfo.response.body.string
} else {
""
}
}
在我冗长但简单的很棒的 Gatling 模拟中,我几乎没有以错误 500 结尾的响应。是否可以告诉 gatling 在模拟期间将这些错误响应消息收集到一个文件中?
生产模式下没有。只有在启用调试日志记录时才会有它们。
可以收集任何你想要的东西并将其保存到 simulation.log 文件中。定义协议时使用 extraInfoExtractor 方法:
val httpProtocol = http
.baseURL(url)
.check(status.is(successStatus))
.extraInfoExtractor { extraInfo => List(getExtraInfo(extraInfo)) }
然后在您的 getExtraInfo(extraInfo: ExtraInfo) 方法中定义您想要的任何条件。下面的示例输出请求和响应,如果通过 Java 系统 属性 启用调试,或者响应代码不是 200,或者请求状态是 KO(如果您设置了一些最大时间,则可以是 KO,这最大时间增加)
private val successStatus: Int = 200
private val isDebug = System.getProperty("debug").toBoolean
private def getExtraInfo(extraInfo: ExtraInfo): String = {
if (isDebug
|| extraInfo.response.statusCode.get != successStatus
|| extraInfo.status.eq(Status.valueOf("KO"))) {
",URL:" + extraInfo.request.getUrl +
" Request: " + extraInfo.request.getStringData +
" Response: " + extraInfo.response.body.string
} else {
""
}
}