LocustIO:min_wait 和 max_wait 未应用
LocustIO: min_wait and max_wait not being applied
我正在玩 LocustIO。我有一个 self.client.get()
任务,我的 min_wait
和 max_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,其目标是模拟用户行为。
我正在玩 LocustIO。我有一个 self.client.get()
任务,我的 min_wait
和 max_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,其目标是模拟用户行为。