Low-code UI test automation platform powered by Playwright.
Create, record, and run browser tests through a web interface - no code required.
- Visual Recorder - click through your app via noVNC, steps captured automatically
- Smart Locators - uses
getByRole,getByLabel,hrefinstead of fragile CSS paths - Assertions Builder -
toBeVisible,toHaveText,toHaveURLand more - Mobile Testing - emulate iPhone 15, Pixel 7, iPad and other devices
- Environments -
{{BASE_URL}},{{PASSWORD}}replaced at runtime per environment - Scheduler - cron-based automatic runs with full history per schedule
- Suites - group tests and run them with one click or on schedule
- Trace Viewer - built-in Playwright trace viewer after every run
- Notifications - Telegram / Slack alerts on FAILED
- Export - download a single
.spec.tsor a runnable Playwright project.zip - Import - paste existing Playwright script, get a visual test
- Dashboard - pass rate over time and flaky test detection
| Feature | WrightTest | Cypress | Selenium IDE | Playwright UI |
|---|---|---|---|---|
| No-code recorder | ✅ | ❌ | ✅ | ❌ |
| Docker one-command | ✅ | ❌ | ❌ | ❌ |
| Mobile emulation | ✅ | ❌ | ✅ | |
| Built-in scheduler | ✅ | ❌ | ❌ | ❌ |
Export to .spec.ts |
✅ | ❌ | ❌ | ❌ |
Export runnable project .zip |
✅ | ❌ | ❌ | ❌ |
| Self-hosted | ✅ | ✅ | ✅ | ❌ |
| Trace Viewer built-in | ✅ | ❌ | ❌ | ✅ |
Requirements: Docker, Docker Compose
git clone https://github.com/AlexFilippov-it/wrighttest.git
cd wrighttest
cp .env.example .env
# Edit .env - set JWT_SECRET to a long random string (required)
docker compose up --build| Service | URL |
|---|---|
| App | http://localhost:5173 |
| API | http://localhost:3000 |
| noVNC | http://localhost:6080 |
Default admin login is defined in .env:
ADMIN_EMAIL=admin@wrighttest.appADMIN_PASSWORD=changeme
On an empty database the seed also creates a Docker Demo project with two sample tests, a DEV environment, a Smoke Test suite, and an hourly schedule.
This path is the recommended first launch on any machine. The backend image is built on the Playwright-ready base image and includes the browser bundle, so no host browser or system library setup is required.
If you are working with an AI coding agent, start here first:
It contains the canonical repo workflow, startup order, and environment rules for WrightTest.
Use this only if you want to run the frontend with Vite and the backend on the host.
Requirements: Node.js 20+, PostgreSQL 16, Redis 7
git clone https://github.com/AlexFilippov-it/wrighttest.git
cd wrighttest
cp .env.example .env
# Edit DATABASE_URL for local PostgreSQL
npm install
npm run setup
cd backend && npx prisma migrate dev && npx prisma db seed && cd ..
npm run devnpm install now runs a Playwright bootstrap step for Chromium. On Ubuntu/Linux
it will also try to install system dependencies when the terminal session allows
it. If Playwright still cannot launch Chromium, run the same bootstrap manually
and then install Linux deps:
npm run setup
npx playwright install chromium
sudo npx playwright install-deps chromium| Service | URL |
|---|---|
| Frontend | http://localhost:5173 |
| Backend | http://localhost:3000 |
If the host environment still reports missing Playwright libraries, rerun npm run setup once from the repo root. On Ubuntu/Linux this may fall back to npx playwright install-deps chromium when needed.
git pull
docker compose up --build -dOn first launch or after resetting volumes:
cp .env.example .env
# Make sure JWT_SECRET is set to a long random value
docker compose up --build -dMigrations apply automatically on startup. Existing projects, tests and run history are preserved in the Postgres volume.
All ports are in .env - no hardcoded values in code:
BACKEND_PORT=3001
FRONTEND_PORT=8080
NOVNC_PORT=6081Then restart:
docker compose up --build -dProjects overview with health summaries, project status, and onboarding.
Project workspace with checks, schedules, alerts, and operational summaries.
Edit browser checks visually and review global execution history across projects.
Live recording captures Playwright-ready selectors directly from the browser session.
Export a complete runnable Playwright project as a .zip archive.
The generated project includes:
- Playwright configuration
- ready-to-run test files
package.json- optional environment variable support
- minimal project structure for local IDE usage
After extraction:
npm install
npx playwright install
npx playwright testExport a runnable Playwright workspace that opens directly in your IDE and runs locally without manual setup.
WrightTest supports project-level access roles to control who can edit, run, and manage a project.
Editors can:
- create and edit checks
- run checks
- use recording
- manage schedules and environments
- export Playwright specs and projects
- view runs, screenshots, and traces
Viewers have read-only access.
Viewers can:
- view checks and steps
- inspect runs and results
- open screenshots and traces
- explore project structure
Viewers cannot:
- modify checks
- run checks
- start recording
- edit environments or schedules
- manage project members
Project-level roles keep Viewer accounts read-only while Editors can manage checks, schedules, environments, and exports.
┌─────────────┐ POST /recordings/start ┌──────────────────┐
│ noVNC │ ─────────────────────────▶ │ playwright codegen│
│ (iframe) │ ◀──── sessionId ───────── │ headed browser │
└─────────────┘ └──────────────────┘
│ clicks recorded as Steps
▼
┌─────────────┐ POST /tests/:id/run ┌──────────────────┐
│ Step Editor │ ─────────────────────────▶ │ BullMQ + Redis │
│ + Validate │ │ Worker queue │
└─────────────┘ └──────────────────┘
│
Playwright headless
│
┌─────────────┐ polling GET /runs/:id ┌──────────────────┐
│ Run Result │ ◀───────────────────────── │ Screenshots │
│ Trace Viewer│ │ Traces │
└─────────────┘ └──────────────────┘
| Layer | Technology |
|---|---|
| Frontend | React + TypeScript + Vite + Ant Design |
| Backend | Node.js + Fastify + TypeScript |
| ORM | Prisma + PostgreSQL |
| Queue | BullMQ + Redis |
| Runner | Playwright (Chromium) |
| VNC | noVNC + Xvfb + x11vnc |
| Auth | JWT + bcrypt |
| Container | Docker Compose |
- Network mocking (
page.route()) - CLI tool (
wrighttest run --project-id) - Export full Playwright project
- Test-to-Doc export
- Allure / TestIT integration
The Docker image badge will be added after the first public image publish.
WrightTest is source-available, but not open-source under the OSI definition.
You may use, copy, modify, and run WrightTest for personal, educational, research, internal, and evaluation purposes, including testing your own applications, websites, services, or products.
You may not sell WrightTest as a standalone product or offer WrightTest, or a modified version of WrightTest, as a public hosted service without prior written permission.
See LICENSE for details.







