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 Start signal only — the bench PC executes the whole test natively and stores the results; shut your laptop mid-run and they sync when you're back. Nothing to preinstall and nothing to copy: TurboBench provisions a bare bench itself (embedded Python + adb), ships your script files with the job, and auto-installs their pip packages from imports/requirements.txt — all pushed over SSH, per-user, no admin, no internet on the bench
⏺ 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 everywhere One wheel, or a portable zip with Python embedded — and RDP benches need nothing at all: the runtime is pushed over SSH on the first run

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.3.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.3.0
File Interpreter ABI Platform
turbobench-3.3.0-py3-none-any.whl Python 3 none any Details

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

Download URL turbobench-3.3.0-py3-none-any.whl
Size 576.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e00521c7ae101fb0f2e2c8a006e4076acc662b13945a3d4ece098b0629efd543
BLAKE2b-256 checksum
How to use checksums
d7a5c1fa4429fb897aeeaa8988fdfe34280c020ff9a91e8d1bbcda6433c2a15e
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

This release

3.3.0 This release

1 release file

3.1.0

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