
webapp-testing
✓ Official★ 4,933by microsoft · part of microsoft/fluidframework
Chases a bug in a website by driving a real browser against the real running site, adding logging each time round, and ends by showing you the fix happen on screen.
WHEN YOUR AGENT SHOULD USE IT
A QUICK BOUNDARYUSE FOR
- Write a Playwright script that clicks through your locally running frontend to reproduce a bug.
- Loop through server and UI logs and screenshots until a full-stack bug is fixed.
- Run a final, visible browser demo that proves the fix actually works.
DO NOT USE FOR
- Not for testing with mocks or lightweight test harnesses; it always drives the real app.
This is the playbook your agent receives when the skill activates — you don't need to read it to use the skill, but it's here to audit before installing.
From this point on, ignore any existing tests until you have a working example validated through a new playwright file.
- Install playwright. Use the SDK that best matches the codebase. Default to python.
- Write a playwright config file. Make sure you use reporter: 'list' mode.
- If using python, you must use a virtual env.
- Check to see if you require authentication. If you do, ask me for credentials. Do NOT use mock mode or test harnesses. You should be testing the real thing.
- Write and run a playwright script that lets you interact with the webapp frontend.
- Follow these steps in a loop until the bug is fixed:
- Add many logs to the server and to the UI. You MUST do this on every loop.
- Start the server and the UI.
- Run the playwright script and identify what is happening. Take screenshots, read logs, do whatever you need to.
- Update the playwright script. If you get stuck: did you add logs?
- Run a final demonstration of the playwright browser NOT in headless mode. This is to show me directly what you accomplished.
- Clean up all background jobs and close any browsers.
- Make sure other tests pass.
Web Application Testing
To test local web applications, write native Python Playwright scripts. Your testing should be as close to 'real' as possible.
Example
Identify the server
Single server:
npm run dev" --port 5173Multiple servers (e.g., backend + frontend):
cd backend && python server.py&
cd frontend && npm run dev&To create an automation script, include only Playwright logic
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=True) # Always launch chromium in headless mode
page = browser.new_page()
page.goto('http://localhost:5173') # Server already running and ready
page.wait_for_load_state('networkidle') # CRITICAL: Wait for JS to execute
# ... your automation logic
browser.close()If Playwright is not available, install it in a virtual env.
Do NOT get in a loop where you just keep running tests. In this mode, you should ignore tests entirely until it works.
Install this skill from microsoft/fluidframework on GitHub. It only works when installed from that project, so don't copy the skill's file out on its own.
npx skills add microsoft/fluidframework --skill "webapp-testing" --full-depthRun this in your project — your agent picks the skill up automatically.
BEFORE IT WILL WORK
2 FOR YOU- 01Have your web app's dev servers runnable locally
- 02Have login credentials ready if the app needs auth
Licensed under MIT— you can use, modify, and redistribute it under that license's terms.
View the full license file on GitHub →