Locust 環境
概觀
prepare_env 與 create_env 封裝 locust.env.Environment,把 wiring runner、stats printer、可選 Web UI 的樣板程式都隱藏起來。
create_env
建立 Environment 與 runner,但不啟動任何 user:
from je_load_density import create_env
from je_load_density.wrapper.user_template.fast_http_user_template import (
FastHttpUserWrapper,
)
env = create_env(
FastHttpUserWrapper,
runner_mode="local", # "local" | "master" | "worker"
master_bind_host="*",
master_bind_port=5557,
master_host="127.0.0.1",
master_port=5557,
)
當你需要在 runner 啟動前掛上額外事件監聽器時使用。
prepare_env
完整生命週期 helper:建立 environment → 啟動 runner → 視情況啟動 Locust Web UI → 在 test_time 後停止 → join。
from je_load_density import prepare_env
prepare_env(
user_class=FastHttpUserWrapper,
user_count=50,
spawn_rate=10,
test_time=60,
web_ui_dict={"host": "127.0.0.1", "port": 8089},
)
Web UI
傳入 web_ui_dict 即可啟動 Locust web UI。只有 local 與 master 模式會啟動 UI;workers 永遠不啟動。
Stats greenlets
local 與 master 模式下,create_env 會 spawn Locust 標準 stats_printer 與 stats_history greenlet。Workers 兩者皆跳過,因為由 master 收集並列印。