Intelligent Scenario Generation
LLM generates test scenarios per page from DOM snapshots and screenshots
Test websites with intelligent browser automation and LLM-powered analysis
npx @usharma124/ui-qa https://example.comnpx @usharma124/ui-qa validate --spec requirements.md --url https://app.example.comPrerequisites
An OpenRouter API key is required. See Configuration for setup details.
UI QA offers two modes:
Processes websites through four phases:
| Phase | Description |
|---|---|
| Discovery | Identifies pages via sitemap.xml, robots.txt, or link crawling |
| Analysis | LLM analyzes each page (DOM + screenshot) to generate test scenarios |
| Execution | Runs scenarios concurrently using Playwright with real browser automation |
| Evaluation | LLM evaluates evidence and produces scored reports with categorized issues |
Validates websites against specification documents through eight phases:
| Phase | Description |
|---|---|
| Parsing | Parses specification document (markdown format) |
| Extraction | Extracts testable requirements using LLM with MoSCoW priorities |
| Rubric | Generates evaluation rubric with pass/fail conditions and weights |
| Discovery | Discovers site structure (same as test mode) |
| Planning | Creates requirement-linked test plan mapping requirements to pages |
| Execution | Runs tests with browser automation and captures evidence |
| Cross-Validation | Validates test results against requirements and rubric criteria |
| Reporting | Generates traceability report linking requirements to evidence |
┌─────────────────────────────────────────┐
│ UI/UX QA Agent │
├─────────────────────────────────────────┤
│ ✓ Discovery → Found 5 pages │
│ ✓ Analysis → 12 scenarios │
│ ● Execution → Running scenarios... │
│ ○ Evaluation → Pending │
└─────────────────────────────────────────┘Results include markdown reports, run metadata, streaming JSON logs, and screenshots saved to .ui-qa-runs/.
>= 40 rows: rich mode30-39 rows: standard mode24-29 rows: compact mode< 24 rows: minimal mode (phase + progress + logs)↑/↓ or k/j for line scrollPgUp/PgDn for page scrollg/G for top/bottom (G re-enables live follow)