Getting started
What Bud is and the shortest path from a Python suite to a test run in Bud.
Bud TMP is a test management and execution platform for automated software, hardware, and system testing. It gives teams one place to monitor Test Stations, inspect runs and assertions, retain artifacts, and connect execution evidence to Bloom PLM.
Bud, the runner, and the test library
Section titled “Bud, the runner, and the test library”Bud is EmbedLabs’ test management platform. bud_runner executes your Python suites and reports back to it, and budtestlibrary is the framework you write those suites in.
| Component | Role |
|---|---|
| Bud TMP | Stores, presents, and manages execution results |
| bud-runner | Runs trusted Python test suites and uploads their results to Bud |
| budtestlibrary | Provides the Python test lifecycle, assertions, result model, and optional Bloom metadata |
| Bloom PLM | Optionally receives linked test case execution outcomes from Bud |
bud-runner and budtestlibrary are independent AGPL-3.0 open-source Python packages. They work with Bud without requiring Bloom.
Work in Bud
Section titled “Work in Bud”- Live Test Station registration, heartbeat, and availability
- Searchable test runs with status, station, and location filters
- Assertion results, execution events, logs, and uploaded artifacts
- Custom runs built from the test catalogue and dispatched per station
- PDF reports for the dashboard and individual runs, with an optional company logo
- Dashboard statistics filtered by time range, Test Station, and suite
- User, invitation, and group management with Administrator, Developer, and Viewer roles
- Runner-token and API-key authentication for automated uploads
- Optional result synchronization to Bloom PLM test cases
- Readiness, health, metrics, structured logging, and backup workflows
- An audit log of security-relevant events
Requirements
Section titled “Requirements”- Python 3.9 or later.
- A running Bud backend. See Install.
bud_runnerdefaults tohttp://localhost:8000. - Both packages installed:
pip install bud-runner budtestlibraryRun a suite
Section titled “Run a suite”Write test cases with budtestlibrary, then run them. The runner resolves a test case list from a module attribute (module.LIST_ATTR: a list of "module.ClassName" strings), executes each case, and writes a JUnit report.
# tests/smoke.pySMOKE_TEST_LIST = ["tests.demo_voltage.VoltageTest"]python -m bud_runner run-tests \ --test-case-list tests.smoke.SMOKE_TEST_LIST \ --output report_junit.xmlEach test class runs in its own process, bounded by a per-test and a suite timeout. See bud-runner.
Upload the results
Section titled “Upload the results”To upload results, point the runner at your instance with --backend-url, or set the environment variable:
export BUD_BACKEND_URL=https://bud.example.comThen register a Test Station on that instance. Follow Register a runner. Uploads are enabled by default. Use --no-upload for local runs.
Next steps
Section titled “Next steps”- Install Bud with Docker Compose or on Cloudron.
- Register a Test Station and run suites with
bud_runner. - Write test cases with
budtestlibrary. - Run suites in CI and publish the JUnit report.
- Connect Bud to Bloom to send test case outcomes to Bloom.



