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.1-py3-none-any.whl (548.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: turbobench-3.0.1-py3-none-any.whl
  • Upload date:
  • Size: 548.6 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 725a73cccf23e352802e608f0285ea0c2c9d6bb0dae8c99c41332aa2248cf995
MD5 1a8e314b9276b8b6a7624562bc5cff5a
BLAKE2b-256 1c27dc98ef09c3281f9552f23cec37d86c1fa3b8c2f8d9eb1e3500c1df362d9e

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