TEST · Runner
One flow. Conformance or load.
5G/4G procedures an agent can dispatch, or a team can run. Gate the pipeline on the result, or attach agents for a continuous lab.
TEST · Runner
5G/4G procedures an agent can dispatch, or a team can run. Gate the pipeline on the result, or attach agents for a continuous lab.
The problem
Most teams arrive with scripts, a load tool, and an appliance — each covering a slice, none living where the code does.
Socket scripts give control but no structure. Reporting is reinvented per test, and NGAP and Diameter suites slowly stop agreeing.
A conformance harness proves one UE took the right path; a load tool proves the AMF survives a thousand. Different tools mean different code paths.
Appliances cover what they ship, live behind a GUI, and never land in a PR or CI runner. Gaps need authoring you cannot do.
What it does
A declarative state machine drives the wire. Conformance and load come from the same definition.
Each flow is a protocol FSM — states wait, transitions check, extract, then send. Six action types, fourteen check operators, schema-enforced at load.
Same YAML for a single-UE check or a high-rate burst. Workload knobs are orthogonal; each UE gets its own isolated context.
NGAP, Diameter, SBI, REST, PFCP plus GTP-U — one engine and dispatcher. Multi-protocol flows on a single UE are first-class.
Ordered flow steps as one cycle: provision, load, tear down. stop_on_failure gates the cycle; always_run cleans up even on failure.
run-flow and run-suite exit 0 on pass, non-zero otherwise. Gate on exit code, or capture JSON/JUnit with -output.
After PDU session setup, uplane_start arms N3 traffic and measures packets, bytes, RTT, jitter, and drop. Userspace or embedded DPDK.
Wire protocols
Real 3GPP and IETF stacks, driven by the same FSM dispatcher. One flow can drive more than one at once.
Next step
Tell us what you're testing — or read the docs and run your first flow in about ten minutes.