【发布时间】:2022-01-19 19:35:48
【问题描述】:
您能否帮助我了解 StopUser 在 Locust 中的工作原理 - 我创建了一个简单的示例,其中我有 4 个生成率为 2 的用户,这意味着在第二个 2 时我将有 4 个工作用户。但是如果我使用 StopUser,前两个用户必须在任务完成后停止工作,对吧?
class SimpleClass(HttpUser):
wait_time = between(1, 2)
host = "https://example.com"
@task()
def just_print(self):
logging.debug(f"working {datetime.today().timestamp()}")
raise StopUser
配置:
users: 4
spawn-rate: 2
run-time: 20
在日志中,还有另一种情况——最后,我有 6 个用户,前 2 个用户没有停止工作。
[2022-01-19 21:21:57,560] Andriis-MacBook-Pro.local/INFO/locust.main: Run time limit set to 20 seconds
[2022-01-19 21:21:57,560] Andriis-MacBook-Pro.local/INFO/locust.main: Starting Locust 2.5.1
[2022-01-19 21:21:57,561] Andriis-MacBook-Pro.local/INFO/locust.runners: Ramping to 4 users at a rate of 2.00 per second
[2022-01-19 21:21:57,561] Andriis-MacBook-Pro.local/DEBUG/locust.runners: Ramping to {"SimpleClass": 2} (2 total users)
[2022-01-19 21:21:57,561] Andriis-MacBook-Pro.local/DEBUG/locust.runners: Spawning additional {"SimpleClass": 2} ({"SimpleClass": 0} already running)...
[2022-01-19 21:21:57,562] Andriis-MacBook-Pro.local/DEBUG/locust.runners: 2 users spawned
[2022-01-19 21:21:57,562] Andriis-MacBook-Pro.local/DEBUG/locust.runners: All users of class SimpleClass spawned
[2022-01-19 21:21:57,562] Andriis-MacBook-Pro.local/DEBUG/locust.runners: 0 users have been stopped, 2 still running
[2022-01-19 21:21:57,562] Andriis-MacBook-Pro.local/DEBUG/root: working 1642620117.562613
[2022-01-19 21:21:57,562] Andriis-MacBook-Pro.local/DEBUG/root: working 1642620117.562741
[2022-01-19 21:21:58,567] Andriis-MacBook-Pro.local/DEBUG/locust.runners: Ramping to {"SimpleClass": 4} (4 total users)
[2022-01-19 21:21:58,567] Andriis-MacBook-Pro.local/DEBUG/locust.runners: Spawning additional {"SimpleClass": 4} ({"SimpleClass": 0} already running)...
[2022-01-19 21:21:58,568] Andriis-MacBook-Pro.local/DEBUG/locust.runners: 4 users spawned
[2022-01-19 21:21:58,568] Andriis-MacBook-Pro.local/DEBUG/locust.runners: All users of class SimpleClass spawned
[2022-01-19 21:21:58,568] Andriis-MacBook-Pro.local/DEBUG/locust.runners: 0 users have been stopped, 4 still running
[2022-01-19 21:21:58,568] Andriis-MacBook-Pro.local/INFO/locust.runners: All users spawned: {"SimpleClass": 4} (4 total users)
[2022-01-19 21:21:58,568] Andriis-MacBook-Pro.local/DEBUG/root: working 1642620118.568855
[2022-01-19 21:21:58,569] Andriis-MacBook-Pro.local/DEBUG/root: working 1642620118.569034
[2022-01-19 21:21:58,569] Andriis-MacBook-Pro.local/DEBUG/root: working 1642620118.569189
[2022-01-19 21:21:58,569] Andriis-MacBook-Pro.local/DEBUG/root: working 1642620118.56934
[2022-01-19 21:22:17,147] Andriis-MacBook-Pro.local/INFO/locust.main: --run-time limit reached. Stopping Locust
[2022-01-19 21:22:17,149] Andriis-MacBook-Pro.local/DEBUG/locust.runners: Stopping all users
[2022-01-19 21:22:17,149] Andriis-MacBook-Pro.local/DEBUG/locust.runners: 0 users have been stopped, 0 still running
[2022-01-19 21:22:17,152] Andriis-MacBook-Pro.local/INFO/locust.main: Running teardowns...
[2022-01-19 21:22:17,152] Andriis-MacBook-Pro.local/INFO/locust.main: Shutting down (exit code 0), bye.
[2022-01-19 21:22:17,152] Andriis-MacBook-Pro.local/INFO/locust.main: Cleaning up runner...
【问题讨论】: