UNPKG

@anguske/mcp-playwright-visual-test

Version:

UI Visual Comparison Testing tool - visual regression testing tool based on Playwright

111 lines (86 loc) 4.12 kB
# @anguske/playwright-visual-test A visual regression testing tool based on Playwright, supporting UI screenshot comparison and automated testing. ## Installation ```bash npm install @anguske/playwright-visual-test # or yarn add @anguske/playwright-visual-test # or pnpm add @anguske/playwright-visual-test ``` ## Features - Support for multiple viewport size testing - Configurable comparison threshold - Support for ignoring dynamic content areas - Automatic comparison report generation - Integration with MCP protocol ## API Documentation ### runTest(options) Main test function, accepts the following parameters: - `url`: Target page URL - `viewport`: Viewport size configuration `{ width: number, height: number }` - `waitForSelector?`: Optional, wait for specific element to appear - `ignoreSelectors?`: Optional, array of selectors to ignore - `threshold?`: Optional, pixel comparison threshold (0-1) ## License MIT # MCP Playwright Visual Test Tool Configuration Guide In mcp.json, you can configure the Playwright visual test tool as follows: ```json { "mcp-playwright": { "command": "npx", "args": [ "-y", "@anguske/mcp-playwright-visual-test" ], "env": { // Auto login configuration "AUTO_LOGIN_USERNAME": "your-username", "AUTO_LOGIN_PASSWORD": "your-password", "AUTO_LOGIN_USERNAME_SELECTOR": "#userNameSignIn", "AUTO_LOGIN_PASSWORD_SELECTOR": "#passwordSignIn", "AUTO_LOGIN_SUBMIT_SELECTOR": "input[type=\"submit\"]", "AUTO_LOGIN_SUCCESS_SELECTOR": "", // Optional, element selector after successful login "AUTO_LOGIN_URL_PATTERN": "login|signin|auth", // Login page URL match pattern // Visual test configuration "TEST_SELECTOR": "", // Optional, selector for element to screenshot "TEST_WAIT_FOR_SELECTOR": "", // Optional, wait for specific element "TEST_WAIT_TIMEOUT": 10000, // Optional, wait timeout in milliseconds "TEST_THRESHOLD": 20, // Optional, pixel comparison threshold (0-100) "TEST_IGNORE_SELECTORS": ".dynamic-content,.ads", // Optional, selectors to ignore, comma separated "TEST_VIEWPORT_WIDTH": 1440, // Optional, viewport width, default 1280 "TEST_VIEWPORT_HEIGHT": 800, // Optional, viewport height, default 720 // Project configuration "PROJECT_ROOT": "D:/myProject/quickstart-resources/weather-server-typescript" // Project root path } } } ``` ## Configuration Details ### Auto Login Configuration - `AUTO_LOGIN_USERNAME`: Login username - `AUTO_LOGIN_PASSWORD`: Login password - `AUTO_LOGIN_USERNAME_SELECTOR`: Username input field selector - `AUTO_LOGIN_PASSWORD_SELECTOR`: Password input field selector - `AUTO_LOGIN_SUBMIT_SELECTOR`: Login button selector - `AUTO_LOGIN_SUCCESS_SELECTOR`: Element selector after successful login (optional) - `AUTO_LOGIN_URL_PATTERN`: Login page URL match pattern for auto-detecting login page redirects ### Visual Test Configuration - `TEST_SELECTOR`: Selector for element to screenshot, captures entire page if not set - `TEST_WAIT_FOR_SELECTOR`: Wait for specific element before taking screenshot - `TEST_WAIT_TIMEOUT`: Timeout for waiting for element (milliseconds) - `TEST_THRESHOLD`: Pixel difference threshold for image comparison (0-100), default 100 - `TEST_IGNORE_SELECTORS`: List of selectors to ignore during comparison, comma separated - `TEST_VIEWPORT_WIDTH`: Browser viewport width, default 1280 - `TEST_VIEWPORT_HEIGHT`: Browser viewport height, default 720 ### Project Configuration - `PROJECT_ROOT`: Absolute path to project root directory for storing screenshots and files ## Notes 1. All configuration items are optional, but it's recommended to configure essential login information and viewport size 2. Screenshots will be saved in the `screenshots` folder in the project root directory 3. Comparison results will generate three files: - `current.png`: Current test screenshot - `baseline.png`: Baseline screenshot - `diff.png`: Difference comparison image 4. On first run, the current screenshot will automatically be set as the baseline image