webapp-testing
/webapp-testing
Browser-tests a local webapp end to end — starts the app, installs Playwright if missing, writes a spec for the critical path plus edge cases, runs headless, captures screenshots, console and network logs on failure, and reports a pass/fail table with repro steps. Degrades to curl smoke tests when no browser is available. Use when the user says "test my app", "does signup still work", "check the site before I deploy", or "this page is blank".
- Author
- alebgl77 ↗
- Repository
- claude-inc ↗
- Licence
- MIT
- Last repository change
- 22.10.2026
Assessment and security
- Files in this package
- 1
- Scripts
- 0
- HTML comments
- 0
- URLs in SKILL.md
- 2
No signals detected. Repository changed on 22.10.2026, without references to retired models or APIs.
MIT, open: use and modify while retaining author attribution.
What it does and when to use it
Browser-tests a local webapp end to end — starts the app, installs Playwright if missing, writes a spec for the critical path plus edge cases, runs headless, captures screenshots, console and network logs on failure, and reports a pass/fail table with repro steps. Degrades to curl smoke tests when no browser is available. Use when the user says "test my app", "does signup still work", "check the site before I deploy", or "this page is blank".
Triggers from the description
Original author description
Browser-tests a local webapp end to end — starts the app, installs Playwright if missing, writes a spec for the critical path plus edge cases, runs headless, captures screenshots, console and network logs on failure, and reports a pass/fail table with repro steps. Degrades to curl smoke tests when no browser is available. Use when the user says "test my app", "does signup still work", "check the site before I deploy", or "this page is blank".
How it works
- When to use
- Workflow
- Output format
- Quality bar
- Example
SKILL.md preview
--- name: webapp-testing description: Browser-tests a local webapp end to end — starts the app, installs Playwright if missing, writes a spec for the critical path plus edge cases, runs headless, captures screenshots, console and network logs on failure, and reports a pass/fail table with repro steps. Degrades to curl smoke tests when no browser is available. Use when the user says "test my app", "does signup still work", "check the site before I deploy", or "this page is blank". --- # Webapp Testing — QA Engineer > "Browser-test your app" If a human can click it, it can break. Prove the critical path in a real browser before anything ships. ## When to use - "Test my app" / "check the site before I deploy" — the pre-ship confidence run - "Does signup still work?" after touching auth, forms, or routing - "This page is blank" / "the button does nothing" — reproduce with evidence, not vibes - Regression pass after a dependency bump, refactor, or CSS overhaul - The project has zero e2e coverage and needs a first spec to seed CI ## Workflow 1. Start the app in the background (`npm run dev`, `uvicorn app:app`, `rails s`, ...) and poll until it answers — `curl -sf http://localhost:<port>` in a retry loop. Never test a dead server. 2. Ensure Playwright: `npx playwright --version`; if missing, `npm i -D @playwright/test && npx playwright install chromium`. 3. Map the critical path from the app's purpose: load → key action (signup, add-to-cart, submit) → expected end state. 4. Add 2–3 edge cases: invalid input, empty state, refresh mid-flow, double-submit. 5. Write `tests/e2e.spec.ts` asserting on visible text and roles (`getByRole`, `getByText`) — never brittle CSS selector chains. 6. Run headless: `npx playwright test --reporter=line`. 7. On any failure capture the trio — screenshot, console errors, failed network requests — into `test-results/` and reference each by path. 8. Report the pass/fail table (format below) with exact repro steps per failure. 9. No browser possible (install blocked, sandboxed env)? Degrade gracefully: build a curl smoke suite — status code per route, key strings in bodies, form POST round-trips — and label the report `mode: curl-fallback`. ## Output format ``` ## QA report — <app> @ http://localhost:<port> (mode: playwright-chromium | curl-fallback) | # | Scenario | Result | Evidence | |---|----------|--------|----------| | 1 | Signup happy path | PASS | — | | 2 | Invalid email rejected | FAIL | test-results/02-invalid-email.png | Failures: 2. Invalid email rejected Repro: goto /signup → fill email "nope" → click Submit Expected: inline validation error Actual: HTTP 500; console TypeError at validate.js:14; POST /api/signup → 500 Re-run: npx playwright test --reporter=line ``` ## Quality bar - [ ] Server confirmed answering before the first test ran - [ ] Critical path plus at least two edge cases covered - [ ] Selectors use roles and text, not CSS chains that break on restyle - [ ] Every failure ships with screenshot, console, and network evidence - [ ] Repro steps followable by a human with zero context - [ ] Entire suite re-runs with one stated command ## Example Ask: "Check the store before I deploy." Produced: app started on :3000, `tests/e2e.spec.ts` with five scenarios (browse → add to cart → checkout, plus empty-cart and out-of-stock edges). Result 4 PASS / 1 FAIL. ``` | 5 | Empty-cart checkout | FAIL | test-results/05-empty-cart.png | Repro: goto /cart (empty) → click Checkout → HTTP 500 ``` Verdict: hold the deploy until the empty-cart 500 is fixed; everything else is green.
Versions
| Repository | Score | Licence |
|---|---|---|
| This page · alebgl77/claude-inc | 100 | MIT |
| Navinspire-ia/navin | 100 | AGPL-3.0 |
| Reprograme/redevkit | 100 | MIT |
| wrongstack/wrongstack | 100 | MIT |
| baysao/dot.agents | 100 | Apache-2.0 |
| patriotai/ai-lab | 100 | MIT |
| khaledsaeed18/dotclaude | 100 | MIT |
| jeffersonvalente/cardume | 100 | MIT |
| JZKK720/cubecloud-skills-bundle-kit | 100 | MIT |
Database snapshot: 13.11.2026 · package version ba981fa7303e (SHA-256 digest of the entire package)
Downloads in the last 30 days: 0 · ranking
Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.
Similar skills
- 95memstack-development-webapp-testing
Use when the user says 'write browser tests', 'test this page', 'playwright test', 'e2e test', 'end to end test', 'browser test', 'test the UI', or needs Playwright-based browser testing for a web application. Do NOT use for unit tests, API tests, or non-browser testing. - 100webapp-browser
Test anything in the local Rolebase webapp with the Playwright browser, signed in as a local test admin, with few tokens. Use to check a UI change, open a page or modal, take a screenshot, or test a flow end to end in the webapp (including /admin). - 96smoke-testing
Use when you need confidence the demo path works — a few fast tests for the critical flow (unit tests for logic, a browser smoke test with Playwright, API checks with curl). - 100webapp-debugger
Experimental web app debugging through the agent-browser CLI - it opens pages, interacts by accessibility refs, and collects console, page errors, network, and screenshots as evidence. Local apps by default; a deployed one only on the owner's word. Use only when the user invokes /webapp-debugger. - 90e2e
Writes and runs Playwright end-to-end tests for a user journey: role-based locators, auth storage state, test data setup, axe accessibility checks, mobile viewport, and trace debugging. Uses the webapp-testing skill and Playwright MCP when installed. Use for testing a journey through the real app. - 100e2e-playwright-testing
End-to-end testing with Playwright for web applications. Use when writing E2E tests, browser automation, form submission testing, or user flow testing. Triggers on "playwright", "e2e test", "browser test", "end-to-end", "form flow testing", or test files in tests/e2e/.