🏁 Maestro — Automotive Test Automation Framework
Maestro consolidates SSH, ADB, bench power control, ETFW, DLT logging, serial consoles and Windows camera capture into a single browser-based dashboard. Non-technical users design test cases with drag-and-drop; engineers extend it through a hot-reloadable plugin system.
🚀 Quick start
# Requirements: Python 3.10+ (3.11.9 recommended), Node.js 18+
cd maestro
pip install -r requirements.txt # or: pip install poetry && poetry install
python app.py
app.py installs anything missing, builds the React frontend on first run,
starts the FastAPI backend on http://localhost:8000 and opens your
browser. That's it.
| URL | What |
|---|---|
http://localhost:8000 |
Maestro dashboard |
http://localhost:8000/api/docs |
Interactive API documentation (Swagger) |
http://localhost:8000/metrics |
Prometheus metrics |
✨ Highlights
- Drag-and-drop test designer (list + visual canvas) with pre-built step templates for SSH, ADB, power, ignition, ETFW, DLT, camera and serial console. Reorder steps freely — including inside parallel groups and on the canvas.
- Run Targets: run a test case / scenario / suite Local or on a saved remote (RDP / domain-joined) host over SSH — chosen per test or at run time.
- Registered scripts: register a bench script once (e.g.
power_control.py) with its subcommands; each subcommand becomes a drag-and-drop palette item that runspython power_control.py <subcommand>. - Template Manager: create, edit and delete your own palette templates and register scripts from a dedicated page.
- Execution engine: serial / parallel / step-by-step modes, retry with exponential backoff, IF/THEN conditional jumps, loops, parallel groups, per-device resource locking, sandboxed user scripts.
- Authorship & integrity: every test case records who created/last-edited it (preserved across import/export); saved cases are read-only until you unlock.
- Live monitoring over WebSocket: step status, logs, pause/resume/stop.
- Reports: Allure-style HTML per run, plus one aggregated report per suite/scenario run, with timelines, artifacts and report diffing.
- Scheduling: run a test case, scenario or whole suite once / daily / weekly / cron, with an optional start-from / run-until active window.
- Enterprise security: AES-256-GCM credential vault, 5-role RBAC, audit log.
- Observability: structured JSON logs, Prometheus metrics, adapter health.
- Plugin system: manifest-based adapters, enable/disable, hot reload,
custom plugins in
data/plugins/. - Self-contained packaging: bundle
adbplatform-tools +ffmpeginto the PyPI wheel and a one-folder Windows installer (see INSTALL.md).
🧪 Development
# Backend tests
python -m pytest tests/
# Frontend dev server (proxies API to :8000)
cd frontend && npm install && npm run dev
# Frontend tests & build
npm run test && npm run build
🐳 Docker
docker compose -f docker/docker-compose.yml up --build
📚 Documentation
- INSTALL.md — how to install (installer, PyPI, source, Docker)
- HOWTO.md — task-oriented guide: build tests, targets, scripts, scheduling, reports
- USER_GUIDE.md — using the dashboard
- DEVELOPER_GUIDE.md — extending Maestro
- API_REFERENCE.md — REST/WebSocket API
- MAESTRO_COMPLETE_ARCHITECTURE.md — full architecture spec
- PACKAGING.md — build the wheel / Windows installer
📄 License
MIT — see LICENSE.
Metadata
Release files for maestro-automation 2.2.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| maestro_automation-2.2.5-py3-none-any.whl | Python 3 | none | any | Details |
Release files / maestro_automation-2.2.5-py3-none-any.whl
| Download URL | maestro_automation-2.2.5-py3-none-any.whl |
|---|---|
| Size | 521.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
56d9b0f2ee477e7c0d21a6d02d73a6a3eac46db23b41fe187fbcdbc731d994b7
|
|
BLAKE2b-256 checksum How to use checksums |
9e88788780f5ec60c61119bdd989730ae66b016a5c524c8bd772d8f634c4465f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.9
|