Skip to main content

TurboBench — Automotive test automation for real benches: browser designer, RDP-native execution, turboadb/turbossh transports, Allure-grade reports

Project description

⚡ TurboBench

Automotive test automation for real benches.

Design tests in the browser · run them in the RDP machine · evidence-rich reports.

PyPI Python License: MIT Family

pip install turbobenchtb → your browser opens. That's the whole setup.


The problem it solves

Automotive targets — Android head units, Linux/QNX ECUs, anything on adb, SSH or a COM port — live cabled to bench PCs that you reach over RDP. Testing them usually means brittle personal scripts, copy-pasted terminals, and screenshots pasted into spreadsheets.

TurboBench replaces that with one workflow:

 design in the browser  →  the RDP machine runs the test itself  →  report with evidence
  • Manual engineers build tests from 100+ ready templates — no code.
  • Python engineers drop in any CLI script and it becomes a drag-and-drop step.
  • Everyone gets the same reports: expected vs actual per step, webcam photos/videos, screen recordings, DLT/logcat attachments, trends.

Highlights

🎨 Visual designer Flow canvas + list editor, expected results (contains / wildcard / regex / must-NOT-contain), retries, loops, parallel groups, pause-before, soft steps
🖥 Run in RDP The bench PC executes the whole test natively — its adb, its scripts, its cabled devices. No per-step SSH round-trips (automatic fallback when a step needs the server)
Recorder Try real commands live, keep the good ones, save as a test case — record & playback without screen-scraping
🔁 Stability runs Endurance cycles with stop conditions (duration, consecutive failures, failure rate) and per-cycle results
🧩 Any script is a step .py / .ps1 / .bat / .exe with args — run directly, or register once and pick from a dropdown. Custom plugins add whole new step families in ~20 lines (hot-reload, no restart)
🚗 Automotive built-ins DLT capture · power control · ETFW · serial console · adb & SSH template libraries · webcam evidence · PC-screen recording · RDP desktop capture
📊 Reports that convince Allure-style + Playwright-style HTML, true Allure export with trend history, JUnit, suite roll-ups, email, Jira Xray (Cloud and Server/DC)
📅 Scheduler Once / daily / weekly / cron, active windows, end-after-N-runs, stop-on-fail
🔐 Team-ready Projects with target capability profiles, AES-256-GCM credential vault, roles, authorship & versioning, resource locks
📦 Zero-dependency option One wheel — or a portable zip with Python embedded for benches where nothing may be installed

Quick start

pip install turbobench     # pulls turboadb + turbossh automatically
tb                         # starts the server and opens the browser

First five minutes:

  1. Configuration — add your RDP machine / SSH device / Android serial (auto-detected dropdowns, one Test button each).
  2. Test Designer — drop in templates ("Check boot completed", "Webcam photo", "Run a script/.exe"), set expected results.
  3. Run ▸ Run on: your RDP machine — the bench executes it and the Execution console streams every step live.
  4. Reports — open the run: expected vs actual, evidence gallery, Allure, email, Xray.

Locked-down bench? Use the portable build

python scripts/build_pypi.py       # dist/turbobench-<ver>.whl (UI included)
python scripts/build_portable.py   # dist/turbobench-portable-win64.zip

Unzip on the bench, double-click TurboBench.cmd — Python is inside, no installation, no admin rights.

Your scripts, three ways

1 · Just run it — fastest, zero setup
Action:  Run a script/.exe file (with args)     [system.run_file]
path:    C:/bench/power_control.py
args:    ["normal_power_cycle", "--port", "COM5"]

Interpreter comes from the extension (.py→Python, .ps1→PowerShell, .bat→cmd, .sh→bash, else run directly). Add expected-output rules and the Attach output toggle for evidence.

2 · Register it once — then it's a dropdown for the whole team

Register under Templates → Scripts (path, interpreter, subcommands). Steps then use Run a registered script subcommand and pick from a list — nobody types ids or paths twice.

3 · Write a plugin — a whole new step family in ~20 lines

Plugins → Download starter plugin, edit adapter.py, unzip into data/plugins/, press Reload plugins. Your actions appear in the designer immediately — no restart, no rebuild.

Every path supports cwd, env, timeout, retries, repeat, continue-on-fail, {{steps.N.output}} placeholders, and file-pattern assertions (match_file + match_pattern).

Two eyes on the target

  • Webcam steps use the USB camera pointed at the display — proof of what physically showed.
  • PC screen steps capture the bench PC's desktop (screenshot or recording); the RDP machine: desktop … steps do the same on a remote box.
  • Live Feed streams either one, clearly labelled.

Architecture in 30 seconds

Browser (React) ── REST/WS ── FastAPI server ── SQLite ── artifacts/
     designer · recorder · scheduler · reports · vault · plugins
                        │
     "Run in RDP": test pushed over SSH (turbossh), executed natively
     by the bench PC (its adb via turboadb, its scripts, its devices),
     results + evidence pulled back automatically
                        │
   Android · Linux · QNX · serial · power rig · webcam — cabled to the bench

Exports keep you portable: every test case downloads as a standalone pytest file that runs anywhere with plain pytest.

Development

scripts/run-dev.ps1          # backend :8000 + Vite HMR frontend :5173
python -m pytest tests/      # unit suite

License

MIT © Naveen Daniel Kennedy — built on turboadb and turbossh.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

turbobench-3.0.0-py3-none-any.whl (544.0 kB view details)

Uploaded Python 3

File details

Details for the file turbobench-3.0.0-py3-none-any.whl.

File metadata

  • Download URL: turbobench-3.0.0-py3-none-any.whl
  • Upload date:
  • Size: 544.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for turbobench-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 880f4b9315d9048884b3f3d7cb45c7d6219aa2770723ac8e3a173a0ac824de90
MD5 bf2576112b0601a5030a6ce8e3ac0d8c
BLAKE2b-256 e77b81fd62f70c2e22780a5b7e9c59463a82e7b343fb336a5852a89db599deed

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page