Maestro — Automotive Test Automation Framework (web dashboard + adapters)
Project description
🏁 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file maestro_automation-2.1.1-py3-none-any.whl.
File metadata
- Download URL: maestro_automation-2.1.1-py3-none-any.whl
- Upload date:
- Size: 485.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
09c780fa44a9c57d6d4cf0829a5ba8f84c9cba2792993cb0f461fd3c5ba02b7d
|
|
| MD5 |
d69a5afc026930235563db1b9aae254e
|
|
| BLAKE2b-256 |
0eb558fdd3a80c96f04659df6decc6b07efa1b89ec31b4696833c4ead1f6a37c
|