统计JMeter 4.0中的响应码数量

Counting the number of response codes in JMeter 4.0

我 运行 进行了一些负载测试(所有端点),我们的代码中确实存在一个已知问题:如果同时发送多个 POST 请求,我们确实会收到重复错误在我们数据库中的时间戳字段上。

我想做的就是在变量中计算超时(基于收到的消息"Service is not available. Request timeout")并将其视为正常行为(不要让测试失败)。

现在我已经为此添加了一个响应断言(为了保持测试 运行ning)但我无法判断是否或有多少超时实际发生。

这个怎么算? 谢谢

如果您只需要根据响应消息找出计数,那么您可以使用简单的数据写入器(仅针对 csv 配置)将性能结果保存在 csv 文件中,然后根据响应消息过滤 csv 以得到所需的计数。或者您可以使用仅显示 "errors" 选项来获取所有错误,然后根据预期的错误消息过滤掉。

如果您需要在 运行 时间找出答案,那么您可以使用聚合报告侦听器并使用 "Errors" 复选框来获取失败计数,但这也包括其他失败。

但是,如果您需要在 运行 时获取计数以便稍后使用,那就另当别论了。我假设情况并非如此。

谢谢,

我建议按如下方式执行此操作:

  1. JSR223 Listener 添加到您的测试计划
  2. 将以下代码放入"Script"区域:

    if (prev.getResponseDataAsString().contains('Service is not available. Request timeout')) {
        prev.setSampleLabel('False negative')
    }
    

就是这样,如果采样器将在响应中包含 Service is not available. Request timeout body - JMeter 会将其标题更改为 False negative

您甚至可以通过在脚本中添加 prev.setSuccessful(false) 行来将其标记为已通过。请参阅 Apache Groovy - Why and How You Should Use It 文章,了解有关在 JMeter 测试 Groovy 中还可以做什么的更多信息