Locust 環境

概觀

prepare_envcreate_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_printerstats_history greenlet。Workers 兩者皆跳過,因為由 master 收集並列印。