LocustIO:min_wait 和 max_wait 未应用

LocustIO: min_wait and max_wait not being applied

我正在玩 LocustIO。我有一个 self.client.get() 任务,我的 min_waitmax_wait 分别设置为 1 毫秒。

class App_User(HttpLocust):  
    ... 
    min_wait = 1  
    max_wait = 1  

我正在使用 logging 查看响应。我期望在控制台中任务日志的时间戳将在同一秒内,给定 max_wait 为 1 毫秒,但任务似乎仍然每 1 秒运行一次。

在给定 1 毫秒任务等待的情况下,期望在 1 秒负载测试期间内有 1000 个 GET 响应是错误的吗?还有 1 个模拟用户?

Is it wrong to expect a 1000 GET responses within a 1 second load test period given 1 millisecond task wait; 1 simulated user as well?

这些值仅适用于完成任务之间的时间。

例如,如果您的 GET 请求需要 5 秒,对于每个 Locust,您将看到如下内容:

  • 0.000s -- 请求 1 已启动
  • 5.000s -- 请求1完成,等待1ms
  • 5.001s -- 请求 2 开始
  • 10.001 -- 请求2完成,等待1ms
  • 10.002 -- 请求 3 已启动

等等

这是因为等待时间只发生在 个请求之间。这不是说 "run ever 1 ms" 而是 "wait 1 ms between every task after they complete."

1ms是2个请求之间的等待时间。所以很可能你的服务器需要 1s 来响应。如果你想每秒有更多请求,你应该添加更多 "App_User".

另外,你的测试机可能无法以那么高的速度发出请求,我可怜的PC只能做不到70。这个阶段,你需要一个蝗虫群。

最后,需要注意的一件重要事情是 Locust 并非设计为具有固定的 RPS,其目标是模拟用户行为。