Locust - 如何延迟收集 RPS 数据直到所有线程都启动 场景

问题描述

场景

locust 使用渐变生成率进行测试,图表看起来像 45 度角。

我想知道所有线程都在运行时系统的 RPS。

来自 locust 的开箱即用 RPS 值将包括运行开始时线程较少时的 RPS 值。

  1. 如何自定义我的 locust 脚本以从所有线程都运行时开始计算 RPS?
  2. 这是一种合理的负载测试做法吗?
  3. 另一种选择是尽可能多地“模拟现实”(实际上,系统启动时会加速)。要获得更具代表性的 RPS 值,请运行更长时间的测试。

解决方法

您需要关注系统在添加新负载时可以处理的内容的原因有很多。接受连接可能会出现性能问题,例如,如果您的 SSL/TLS 设置或库不正确或较旧。在某些情况下,出现新负载可能会影响已经连接到并使用您的系统的用户。您甚至可能有在接受新连接时发生的其他服务器逻辑。简而言之,您应该选择上面的 3)。

然而,有足够多的人喜欢忽略或掩盖在提升过程中的情况,Locust 确实有一个 configuration option --reset-stats,一旦所有的产卵完成,它会自动重置所有收集的统计数据,所以它看起来好像负载测试是在所有用户瞬间连接的情况下开始的。那应该可以满足您的要求。