Skip to content

viadee/roboscope

Repository files navigation

RoboScope

License Build Distribution E2E Tests Website

Web-based Robot Framework Test Management Tool with Git integration, GUI execution, report analysis, environment management, and container runtime.

Built by viadee Unternehmensberatung AG.

RoboScope Screenshot

Features

  • Project Management — Clone Git repos or link local folders, branch management, auto-sync
  • Test Explorer — Browse test files, parse Robot Framework keywords/tests, library dependency check
  • Visual Flow Editor — Node-based graphical test editor with keyword palette, drag & drop, control structures (IF/FOR/WHILE/TRY)
  • Test Execution — Run tests via subprocess or Docker, live WebSocket status updates, scheduling
  • Recorder v2 — Record browser flows into .robot files end-to-end. Launch from the sidebar (Recorder) or from the Explorer toolbar (the Explorer button pre-selects the current repository). Transport picker for Web (Playwright) and Desktop Windows; each captured action streams live over SSE with ranked selector candidates (test-id, ARIA, text, CSS, XPath, Playwright locator). Saves a sidecar <name>.rbs.json alongside the .robot carrying all candidates — consumed later by the self-healing library. The external Chrome Recorder extension remains available as a separate HTTP client.
  • Self-Healing Selectors — Opt-in RoboScopeHeal Robot Framework library (Heal Click, Heal Fill Text, Heal Upload File, Heal Drag And Drop, ...). When a selector times out at runtime the library falls through three tiers: sidecar-stored alternatives → cross-strategy transposition (id=X[data-testid=X]text=X → ...) → DOM-walk fingerprint scoring (Healenium-style). Confirmed heals land as a "🩹 Apply patch" button on the run-detail panel; suspect heals (test still failed) never offer a patch. Per-test budget, confidence thresholds, and a no-heal tag keep the blast radius bounded.
  • Selector Diagnosis — Every failed run is scanned for "Element not found" / Playwright timeout signatures; recognised selectors are cross-referenced with the recording sidecar and their ranked alternatives surface as copy-chips on the run detail.
  • Flaky-Test Quarantine — Mark any flaky test from the Stats page as quarantined. A Robot Framework listener then skips those tests at runtime (SKIP, not FAIL) so CI pipelines stop drowning in known-flaky noise. Per-repository, audit-logged, reversible.
  • AI Failure Analysis + Patch Suggestions — The AI analyse pipeline emits prose root-cause analysis plus optional unified-diff patches for concrete fixes. Patches render as copy-to-clipboard diffs on the report page — no auto-commit.
  • Heal-Rate KPI — Stats overview shows a 30-day heal-rate card + sparkline as a leading indicator of test drift against the app.
  • Environment Management — Create Python virtual environments, install/manage packages, set variables, secrets encryption
  • Report Analysis — Parse output.xml, compare runs, view embedded HTML reports
  • AI-Powered Analysis — LLM-based failure root-cause analysis with fix suggestions (OpenAI, Anthropic, OpenRouter, Ollama)
  • Statistics & KPIs — Pass rate trends, flaky test detection, heatmaps, deep analysis (15 KPIs in 5 categories)
  • AI Code Generation — Generate .robot files from .roboscope YAML specs, reverse-engineer specs from .robot files
  • CI/CD Integration — API tokens for service accounts, outbound webhooks (6 events), git webhook triggers for automatic test runs
  • Single Sign-On (SSO) — OpenID Connect identity providers (Azure AD / Microsoft Entra ID, Google Workspace, GitHub, generic OIDC) with dry-run probe, group-to-team mapping and per-provider PDF/Markdown handoff document
  • Audit & Compliance — Full audit log with CSV export, retention enforcement, secrets encryption at rest
  • rf-mcp Integration — Optional Robot Framework keyword knowledge server for enhanced AI suggestions
  • Role-Based Access — Four roles: Viewer, Runner, Editor, Admin
  • Multi-Language UI — English, German, French, Spanish
  • In-App Documentation — Searchable docs with print/PDF export
  • Offline Deployment — Standalone ZIP with bundled dependencies for air-gapped environments

Tech Stack

Layer Technology
Backend FastAPI, SQLAlchemy 2.0, Pydantic v2, Python 3.12+
Frontend Vue 3, TypeScript, Pinia, Vue Router, Chart.js, CodeMirror 6, Vite
Database SQLite (default) or PostgreSQL
Tests pytest (~885 tests), Vitest (113 tests), Playwright (~249 E2E tests)
AI OpenAI, Anthropic, OpenRouter, Ollama (configurable)

Quick Start

Prerequisites

  • Python 3.12+
  • Node.js 20+
  • No Redis or external services required

Development

# Install dependencies
make install

# Copy environment config
cp backend/.env.example backend/.env

# Start backend (port 8000) + frontend (port 5173)
make dev

Docker

make docker-dev    # Development (SQLite)
make docker-up     # Production (PostgreSQL + Nginx)

Standalone Deployment

Download the latest distribution archive from Releases — pick the one matching your platform (roboscope_offline_linux.zip, roboscope_offline_macos-arm64.zip, roboscope_offline_macos-x86_64.zip, roboscope_offline_windows.zip, or the lightweight roboscope.zip if you have outbound internet at install time). Then:

unzip roboscope_offline_linux.zip   # or your platform's archive
cd roboscope
./install-mac-and-linux.sh          # Creates venv, installs dependencies offline
./start-mac-and-linux.sh            # Starts the app

On Windows, use install-windows.bat and start-windows.bat instead.

Once the start script reports it's up, open the app at:

http://localhost:8145

Default login: admin@roboscope.local / admin123. Override the port via the PORT environment variable (e.g. edit the bundled .env) — see scripts/dist-README.md inside the unpacked archive for the full env-var list.

Screenshots

Dashboard Test Explorer Statistics
Dashboard Explorer Statistics

Project Structure

RoboScope/
├── backend/          # FastAPI application
│   ├── src/          # Source code (domain-driven modules)
│   │   ├── auth/     # JWT auth + RBAC
│   │   ├── repos/    # Git repository management
│   │   ├── explorer/ # File browser + Robot parser
│   │   ├── execution/# Test runs + scheduling
│   │   ├── environments/ # venv + packages
│   │   ├── reports/  # output.xml parser + comparison
│   │   ├── stats/    # KPIs + deep analysis
│   │   ├── ai/       # LLM integration (generate, reverse, analyze)
│   │   ├── settings/ # App settings
│   │   ├── webhooks/ # API tokens + webhooks
│   │   └── audit/    # Audit log + retention
│   ├── tests/        # pytest tests
│   ├── migrations/   # Alembic (SQLite + PostgreSQL)
│   └── examples/     # Example Robot Framework test files
├── frontend/         # Vue 3 + TypeScript SPA
│   └── src/
│       ├── views/    # 12 application views
│       ├── stores/   # 9 Pinia stores
│       ├── api/      # 9 Axios API clients
│       ├── docs/     # In-app documentation (EN, DE, FR, ES)
│       └── i18n/     # Translations (EN, DE, FR, ES)
├── e2e/              # Playwright end-to-end tests
├── docker/           # Dockerfiles and nginx config
├── scripts/          # Build and utility scripts
└── Makefile          # All common commands

API

Swagger UI available at http://localhost:8000/api/v1/docs

Endpoint Description
/api/v1/auth Authentication & user management
/api/v1/repos Project CRUD & Git sync
/api/v1/explorer/{repo_id} File browser, test parser, library check
/api/v1/runs Test execution & scheduling
/api/v1/environments Virtual environments & packages
/api/v1/reports Report parsing & comparison
/api/v1/stats KPIs, trends, deep analysis
/api/v1/ai AI providers, code generation, failure analysis
/api/v1/webhooks API tokens, outbound webhooks, git triggers
/api/v1/audit Audit log, retention enforcement
/api/v1/settings Application settings (admin)

Testing

make test-backend       # Backend unit tests (pytest)
make test-frontend      # Frontend unit tests (Vitest)
make test-e2e           # Playwright E2E tests
make test               # All tests
make lint               # Ruff + ESLint + vue-tsc

Building

# Build standalone offline distribution
bash scripts/build-mac-and-linux.sh

# Output: dist/roboscope.zip (includes wheels for Linux, macOS, Windows)

Configuration

Variable Default Description
DATABASE_URL sqlite:///./roboscope.db Database connection
SECRET_KEY dev-key JWT secret (change in production!)
RUNNER_TYPE auto subprocess, docker, or auto
DEFAULT_TIMEOUT_SECONDS 3600 Timeout per test run
WORKSPACE_DIR ~/.roboscope/workspace Git repos directory
REPORTS_DIR ~/.roboscope/reports Report files directory
VENVS_DIR ~/.roboscope/venvs Virtual environments directory

Single Sign-On (SSO)

RoboScope supports OIDC identity providers for Azure AD / Microsoft Entra ID, Google Workspace, GitHub and any standards-compliant OIDC issuer (Okta, Keycloak, Auth0, Authentik, …). High-level setup:

  1. Register a new web application at your IdP and note the Client ID + Client Secret.
  2. Set the Redirect URI to https://<your-roboscope-host>/auth/sso/callback.
  3. In RoboScope, log in as admin and open Admin → Identity Providers → Add Provider.
  4. Fill in name, type, Issuer URL, Client ID/Secret, scopes (default openid profile email) and the Group claim name (default groups).
  5. Click Run Dry-Run — only a passing probe unlocks Save.
  6. Optional: download the Hand-off PDF/Markdown (per language) for the IdP admin team, and map IdP groups to RoboScope teams under Admin → Teams.

A local-password emergency bypass (admin@roboscope.local by default) remains available even if the IdP is unreachable. Full step-by-step guidance, including IdP-specific Issuer URL examples and group-mapping details, is in the in-app documentation under Settings → Identity Providers (SSO).

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/my-feature)
  3. Commit your changes (git commit -m 'feat: add my feature')
  4. Push to the branch (git push origin feature/my-feature)
  5. Open a Pull Request

Please follow the existing code style (Ruff for Python, ESLint for TypeScript) and include tests for new features.

Security

Found a security issue? Please don't open a public issue. See SECURITY.md for the disclosure process and our supported-versions / known-advisories list.

License

Licensed under the Apache License 2.0.

Copyright 2026 viadee Unternehmensberatung AG.

Acknowledgments

About

No description or website provided.

Topics

Resources

License

Security policy

Stars

35 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors