JMeter 有没有办法记录最近发送的 500 个请求和响应?

Is there a way for JMeter to keep a log of the last 500 requests and responses sent?

当您 运行 JMeter 处于 GUI 模式并添加一个侦听器时,您可以查看每个请求和响应。这在使用非 GUI 模式时会丢失,取而代之的是您会得到一个不同的输出,该输出总结了发送的请求数量以及其中的百分比 passed/failed:

这很好,但是我还想获取请求和响应的日志,因为这对于我正在测试的软件来说是有用的调试信息。必须有一个简单的方法来做到这一点?

此外,我计划 运行 对这些测试进行相对较长的持续时间(例如最多 3 天,因为它们是稳定性测试)并且我不一定需要所有 request/response 信息。是否可以存储,比如说,最后 500 requests/responses?

可以通过操作 Results file configuration 将 JMeter 配置为在 .jtl 结果文件中保存 request/response 数据,示例设置:

jmeter.save.saveservice.output_format=xml
jmeter.save.saveservice.response_data=true
jmeter.save.saveservice.samplerData=true
jmeter.save.saveservice.requestHeaders=true
jmeter.save.saveservice.responseHeaders=true
jmeter.save.saveservice.url=true

或者,您可以像 Simple Data Writer or Flexible File Writer 添加一个监听器,并选择存储内容、存储时间和存储位置。

保存最后一个 X requests/responses 的“简单”配置选项不可用,如果上述解决方案不符合您的需求,您可以考虑实施自己的解决方案,即 JSR223 Listener connected with Counter,这样您将存储请求和响应数据放入单独的 500 个文件中,这些文件将在计数器重置时被覆盖