start_test & prepare_env
Overview
start_test is the high-level entrypoint that picks a user template,
seeds the parameter resolver, and asks prepare_env to build a Locust
environment in the requested mode (local / master / worker).
Signature
from je_load_density import start_test
start_test(
user_detail_dict={"user": "fast_http_user"},
user_count=50,
spawn_rate=10,
test_time=60,
web_ui_dict=None, # {"host": "...", "port": ...}
runner_mode="local", # "local" | "master" | "worker"
master_bind_host="*",
master_bind_port=5557,
master_host="127.0.0.1",
master_port=5557,
expected_workers=0,
tasks=...,
variables={"host": "https://api.example.com"},
csv_sources=[{"name": "users", "file_path": "users.csv"}],
)
Supported user types
|
Template |
|---|---|
|
|
|
|
|
WebSocket frame loop (lazy |
|
Unary gRPC calls against operator-supplied stubs. |
|
MQTT publish / subscribe loop. |
|
Raw TCP / UDP send-recv. |
prepare_env
prepare_env is the lower-level layer behind start_test. It is
useful when you want to build a Locust environment manually, for
example to integrate with another runner.
from je_load_density import prepare_env
from je_load_density.wrapper.user_template.fast_http_user_template import (
FastHttpUserWrapper, set_wrapper_fasthttp_user,
)
set_wrapper_fasthttp_user(
{"user": "fast_http_user"},
tasks=[{"method": "get", "request_url": "https://example.com/"}],
)
prepare_env(
user_class=FastHttpUserWrapper,
user_count=50,
spawn_rate=10,
test_time=60,
runner_mode="local",
)
Distributed mode
Master:
start_test(
user_detail_dict={"user": "fast_http_user"},
runner_mode="master",
master_bind_host="0.0.0.0",
master_bind_port=5557,
expected_workers=4,
user_count=200,
spawn_rate=20,
test_time=300,
tasks=[...],
)
Worker (run on each node, on the same network as master):
start_test(
user_detail_dict={"user": "fast_http_user"},
runner_mode="worker",
master_host="10.0.0.10",
master_port=5557,
tasks=[...],
)
The master waits for expected_workers workers to register before
ramping up. Workers join the master and run the requested user count
proportional to the cluster size.