Skip to content

Commit 2be98b2

Browse files
committed
feat: register all new functions as LD_* executor commands
The action executor now exposes 33 LD_* commands covering reports (html/json/xml/csv/junit/summary), the parameter resolver (register/clear), HAR import, SQLite persistence (persist/list/fetch), the metrics exporters (prometheus/influx/otel start+stop), and a hardened start_socket_server entry. The package __init__ re-exports them so callers can drive LoadDensity programmatically. The socket-server registration is lazy to avoid a circular import.
1 parent 4ab6efe commit 2be98b2

2 files changed

Lines changed: 194 additions & 95 deletions

File tree

je_load_density/__init__.py

Lines changed: 93 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,95 @@
11
# hook (side-effect import: registers Locust request hooks)
22
from je_load_density.wrapper.event.request_hook import request_hook # noqa: F401
3-
# env
4-
from je_load_density.utils.executor.action_executor import add_command_to_executor
5-
# executor
6-
from je_load_density.utils.executor.action_executor import execute_action
7-
from je_load_density.utils.executor.action_executor import execute_files
8-
from je_load_density.utils.executor.action_executor import executor
9-
# file
3+
4+
# Executor + action plumbing
5+
from je_load_density.utils.executor.action_executor import (
6+
add_command_to_executor,
7+
execute_action,
8+
execute_files,
9+
executor,
10+
)
1011
from je_load_density.utils.file_process.get_dir_file_list import get_dir_files_as_list
11-
# html
12-
from je_load_density.utils.generate_report.generate_html_report import generate_html
13-
from je_load_density.utils.generate_report.generate_html_report import generate_html_report
14-
# json
15-
from je_load_density.utils.generate_report.generate_json_report import generate_json
16-
from je_load_density.utils.generate_report.generate_json_report import generate_json_report
12+
13+
# Reports
14+
from je_load_density.utils.generate_report.generate_csv_report import generate_csv_report
15+
from je_load_density.utils.generate_report.generate_html_report import (
16+
generate_html,
17+
generate_html_report,
18+
)
19+
from je_load_density.utils.generate_report.generate_json_report import (
20+
generate_json,
21+
generate_json_report,
22+
)
23+
from je_load_density.utils.generate_report.generate_junit_report import generate_junit_report
24+
from je_load_density.utils.generate_report.generate_summary_report import (
25+
build_summary,
26+
generate_summary_report,
27+
)
28+
from je_load_density.utils.generate_report.generate_xml_report import (
29+
generate_xml,
30+
generate_xml_report,
31+
)
32+
33+
# JSON IO
1734
from je_load_density.utils.json.json_file.json_file import read_action_json
18-
# xml
19-
from je_load_density.utils.generate_report.generate_xml_report import generate_xml
20-
from je_load_density.utils.generate_report.generate_xml_report import generate_xml_report
21-
# server
22-
from je_load_density.utils.socket_server.load_density_socket_server import start_load_density_socket_server
23-
# test record
35+
36+
# Metrics
37+
from je_load_density.utils.metrics import (
38+
start_influxdb_sink,
39+
start_opentelemetry_exporter,
40+
start_prometheus_exporter,
41+
stop_influxdb_sink,
42+
stop_opentelemetry_exporter,
43+
stop_prometheus_exporter,
44+
)
45+
46+
# Parameterisation
47+
from je_load_density.utils.parameterization import (
48+
parameter_resolver,
49+
register_csv_source,
50+
register_csv_sources,
51+
register_variable,
52+
register_variables,
53+
resolve,
54+
)
55+
56+
# Recording / replay
57+
from je_load_density.utils.recording.har_importer import (
58+
har_to_action_json,
59+
har_to_tasks,
60+
load_har,
61+
)
62+
63+
# Project scaffolding
64+
from je_load_density.utils.project.create_project_structure import create_project_dir
65+
66+
# Control socket
67+
from je_load_density.utils.socket_server.load_density_socket_server import (
68+
start_load_density_socket_server,
69+
)
70+
71+
# Test records
72+
from je_load_density.utils.test_record.sqlite_persistence import (
73+
fetch_run_records,
74+
list_runs,
75+
persist_records,
76+
)
2477
from je_load_density.utils.test_record.test_record_class import test_record_instance
25-
# start
26-
from je_load_density.wrapper.create_locust_env.create_locust_env import prepare_env
27-
from je_load_density.wrapper.create_locust_env.create_locust_env import create_env
2878

29-
# Proxy
79+
# Locust environment + start
80+
from je_load_density.wrapper.create_locust_env.create_locust_env import (
81+
create_env,
82+
prepare_env,
83+
)
3084
from je_load_density.wrapper.proxy.proxy_user import locust_wrapper_proxy
31-
3285
from je_load_density.wrapper.start_wrapper.start_test import start_test
3386

34-
# Locust
35-
from locust import SequentialTaskSet
36-
from locust import task
37-
from locust import TaskSet
87+
# Locust re-exports
88+
from locust import SequentialTaskSet, TaskSet, task
3889

39-
# Callback
90+
# Callback executor
4091
from je_load_density.utils.callback.callback_function_executor import callback_executor
4192

42-
from je_load_density.utils.project.create_project_structure import create_project_dir
43-
4493
__all__ = [
4594
"create_env", "start_test",
4695
"locust_wrapper_proxy",
@@ -49,9 +98,20 @@
4998
"execute_action", "execute_files", "executor", "add_command_to_executor",
5099
"get_dir_files_as_list",
51100
"generate_html", "generate_html_report",
52-
"generate_json", "generate_json_report", "read_action_json",
101+
"generate_json", "generate_json_report",
53102
"generate_xml", "generate_xml_report",
103+
"generate_csv_report", "generate_junit_report", "generate_summary_report",
104+
"build_summary",
105+
"read_action_json",
54106
"start_load_density_socket_server",
55107
"SequentialTaskSet", "task", "TaskSet",
56-
"callback_executor", "create_project_dir"
108+
"callback_executor", "create_project_dir",
109+
"parameter_resolver", "resolve",
110+
"register_variable", "register_variables",
111+
"register_csv_source", "register_csv_sources",
112+
"har_to_action_json", "har_to_tasks", "load_har",
113+
"persist_records", "list_runs", "fetch_run_records",
114+
"start_prometheus_exporter", "stop_prometheus_exporter",
115+
"start_influxdb_sink", "stop_influxdb_sink",
116+
"start_opentelemetry_exporter", "stop_opentelemetry_exporter",
57117
]

0 commit comments

Comments
 (0)