Skip to main content

⚡ 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 turbobench → tb → 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.

Metadata

Release files for turbobench 3.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for turbobench 3.1.0
File Interpreter ABI Platform
turbobench-3.1.0-py3-none-any.whl Python 3 none any Details

Release files / turbobench-3.1.0-py3-none-any.whl

Download URL turbobench-3.1.0-py3-none-any.whl
Size 557.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dca40e61b70f99c68d0c3df9ac14b29b01989970ef5b9d73b88c2820f390206c
BLAKE2b-256 checksum
How to use checksums
88b814a9bdb58bdf0fdbe9d0683e246f1701745d4121d06aa02a25a831feacac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release history Release notifications | RSS feed

3.3.0

1 release file

This release

3.1.0 This release

1 release file

3.0.2

1 release file

3.0.1

1 release file

3.0.0

1 release file

1.3.6

1 release file

1.3.5

1 release file

1.3.4

1 release file

1.3.3

1 release file

1.3.2

1 release file

1.3.1

1 release file

1.3.0

1 release file

1.2.2

1 release file

1.2.1

1 release file

1.2.0

1 release file

1.1.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page