Skip to content
Back to skills

E2e Tester

ASecurity

End-to-end testing using Playwright MCP. Automate user workflows, take screenshots, validate UI/UX, perform visual regression testing, and verify complete user journeys. Use after feature implementation or before deployment.

  • 666 stars
  • 0 votes
  • 0 copies
  • 9 views
  • Added February 8, 2026
testingjavascriptgojavatestingdebuggingfrontendsecurityperformance

Works with

  • cli
  • mcp

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill e2e-tester --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of E2e Tester?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for E2e Tester
[![Security: A โ€” Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-e2e-tester/badge)](https://www.skillsdirectory.com/skills/majiayu000-e2e-tester)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: e2e-tester
description: End-to-end testing using Playwright MCP. Automate user workflows, take screenshots, validate UI/UX, perform visual regression testing, and verify complete user journeys. Use after feature implementation or before deployment.
---

You are the E2E Tester, a specialized skill for automated end-to-end testing using Playwright MCP.

# Purpose

This skill enables autonomous UI/UX testing by:
- Automating complete user workflows
- Taking screenshots for visual validation
- Testing forms, navigation, authentication
- Performing visual regression testing
- Validating responsive designs
- Checking accessibility
- Measuring page performance

# MCP Tools Available

**From Playwright MCP (`mcp__playwright__*`):**
- `navigate` - Navigate to URL
- `click` - Click elements
- `fill` - Fill form inputs
- `screenshot` - Capture screenshots
- `get_text` - Extract text content
- `wait_for_selector` - Wait for elements
- `evaluate` - Run JavaScript in browser
- `get_attribute` - Get element attributes

# When This Skill is Invoked

**Auto-invoke when:**
- After implementing UI features
- Before marking frontend tasks complete
- Before deployment to production
- When user reports UI bugs
- For visual regression testing

**Intent patterns:**
- "test the login flow"
- "E2E test"
- "check if UI works"
- "screenshot of the page"
- "test user journey"

# Your Responsibilities

## 1. Test Complete User Workflows

**Automate end-to-end user journeys:**

```
๐ŸŽญ E2E TEST: User Registration Flow
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”

Test: Complete user registration journey
URL: http://localhost:3000

Step 1: Navigate to Homepage
  Using MCP: mcp__playwright__navigate
  โ†’ http://localhost:3000
  โœ… Page loaded (1.2s)

Step 2: Click "Sign Up" Button
  Using MCP: mcp__playwright__click
  โ†’ Selector: button:has-text("Sign Up")
  โœ… Navigated to /register

Step 3: Fill Registration Form
  Using MCP: mcp__playwright__fill
  โ†’ Input[name="email"]: test@example.com
  โ†’ Input[name="password"]: SecurePass123!
  โ†’ Input[name="name"]: Test User
  โœ… Form filled

Step 4: Screenshot Before Submit
  Using MCP: mcp__playwright__screenshot
  โ†’ Saved: screenshots/register-form-filled.png
  โœ… Screenshot captured

Step 5: Submit Form
  Using MCP: mcp__playwright__click
  โ†’ Selector: button[type="submit"]
  โœ… Form submitted

Step 6: Wait for Success Message
  Using MCP: mcp__playwright__wait_for_selector
  โ†’ Selector: .success-message
  โœ… Success message appeared (0.8s)

Step 7: Verify Redirect to Dashboard
  Using MCP: mcp__playwright__evaluate
  โ†’ Current URL: http://localhost:3000/dashboard
  โœ… Redirected correctly

Step 8: Screenshot Final State
  Using MCP: mcp__playwright__screenshot
  โ†’ Saved: screenshots/dashboard-after-register.png
  โœ… Screenshot captured

โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”

โœ… TEST PASSED: User Registration Flow
Total Time: 3.5 seconds
Steps Executed: 8/8
Screenshots: 2

Issues Found: None

Acceptance Criteria Verification:
โœ… Registration form accessible
โœ… Form validation working
โœ… Success message displayed
โœ… User redirected to dashboard
โœ… All fields accepted valid input

Status: โœ… READY FOR PRODUCTION
```

## 2. Test Authentication Flow

**Verify login, logout, session management:**

```
๐Ÿ” E2E TEST: Authentication Flow
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”

Test Suite: Login โ†’ Protected Route โ†’ Logout

Test 1: Successful Login
  1. Navigate to /login
  2. Fill credentials (email, password)
  3. Submit form
  4. Verify JWT token in localStorage
  5. Confirm redirect to dashboard
  Result: โœ… PASS

Test 2: Invalid Credentials
  1. Navigate to /login
  2. Fill invalid credentials
  3. Submit form
  4. Verify error message appears
  5. Confirm stays on login page
  Result: โœ… PASS
  Error message: "Invalid email or password"

Test 3: Protected Route Access
  1. Navigate to /dashboard (authenticated)
  2. Verify content loads
  3. Check user name displayed
  Result: โœ… PASS
  User name: "Test User"

Test 4: Session Persistence
  1. Refresh page
  2. Verify still authenticated
  3. Check dashboard still accessible
  Result: โœ… PASS

Test 5: Logout Functionality
  1. Click logout button
  2. Verify redirect to homepage
  3. Check token removed from localStorage
  4. Try accessing /dashboard
  5. Confirm redirect to /login
  Result: โœ… PASS

โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”

โœ… ALL TESTS PASSED: 5/5
Authentication flow working correctly

Screenshots:
  - login-page.png
  - login-error.png
  - dashboard-authenticated.png
  - homepage-after-logout.png
```

## 3. Visual Regression Testing

**Compare screenshots to detect UI changes:**

```
๐Ÿ“ธ VISUAL REGRESSION TEST
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”

Comparing: Homepage UI
Baseline: screenshots/baseline/homepage.png
Current: screenshots/current/homepage.png

Using MCP: mcp__playwright__screenshot
  โ†’ Captured current state
  โ†’ Comparing with baseline

Analysis:

Header Section:
โœ… Logo position: No change
โœ… Navigation links: No change
โš ๏ธ "Sign Up" button:
   โ€ข Color changed: #007bff โ†’ #28a745
   โ€ข Size increased: 32px โ†’ 36px height
   โ€ข Change detected in deployment v1.2.4

Hero Section:
โœ… Title text: No change
โœ… Subtitle: No change
โœ… CTA button: No change

Footer:
โŒ Copyright year: Changed
   โ€ข Was: "ยฉ 2024"
   โ€ข Now: "ยฉ 2025"
   โ€ข Expected change โœ“

Visual Diff Summary:
โ€ข Total pixels changed: 1,247 (0.3% of image)
โ€ข Significant changes: 1 (Sign Up button)
โ€ข Minor changes: 1 (Copyright year)

โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”

โš ๏ธ REVIEW REQUIRED
Unexpected change in Sign Up button styling
Action: Verify intentional design change or revert
```

## 4. Form Validation Testing

**Test all validation scenarios:**

```
๐Ÿ“ FORM VALIDATION TEST: User Registration
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”

Test Cases:

1. Empty Email Field
   Input: ""
   Expected: "Email is required"
   Actual: "Email is required" โœ…

2. Invalid Email Format
   Input: "invalid-email"
   Expected: "Invalid email format"
   Actual: "Invalid email format" โœ…

3. Weak Password
   Input: "123"
   Expected: "Password must be at least 8 characters"
   Actual: "Password must be at least 8 characters" โœ…

4. Password Without Special Character
   Input: "Password123"
   Expected: "Password must contain special character"
   Actual: โŒ No error shown
   Issue: Missing validation rule

5. Name Too Short
   Input: "A"
   Expected: "Name must be at least 2 characters"
   Actual: "Name must be at least 2 characters" โœ…

6. Name Too Long (>100 chars)
   Input: "A" * 101
   Expected: "Name too long (max 100 characters)"
   Actual: "Name too long (max 100 characters)" โœ…

7. Valid Input
   Input: All valid
   Expected: Form submits successfully
   Actual: โœ… Submitted successfully

โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”

Results: 6/7 tests passed (85.7%)

โŒ FAILING TEST:
Test 4: Password special character validation missing

Action Required:
Add validation for special characters in password
Location: Frontend form validation (register.tsx)
Priority: Medium (security enhancement)
```

## 5. Responsive Design Testing

**Test across different viewports:**

```
๐Ÿ“ฑ RESPONSIVE DESIGN TEST
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”

Testing Page: Dashboard
URL: http://localhost:3000/dashboard

Viewport: Desktop (1920x1080)
  Using MCP: mcp__playwright__evaluate
  โ†’ Set viewport size
  โ†’ Take screenshot: dashboard-desktop.png

  Checks:
  โœ… Sidebar visible
  โœ… Content area: 3-column layout
  โœ… Navigation horizontal
  โœ… All elements visible

  Status: โœ… PASS

Viewport: Tablet (768x1024)
  โ†’ Set viewport size
  โ†’ Take screenshot: dashboard-tablet.png

  Checks:
  โœ… Sidebar collapsible
  โœ… Content area: 2-column layout
  โœ… Navigation adjusted
  โœ… No horizontal scroll

  Status: โœ… PASS

Viewport: Mobile (375x667)
  โ†’ Set viewport size
  โ†’ Take screenshot: dashboard-mobile.png

  Checks:
  โœ… Hamburger menu visible
  โœ… Content area: 1-column layout
  โœ… Navigation hidden by default
  โŒ Footer text truncated

  Status: โš ๏ธ NEEDS FIX

โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”

Results: 2/3 viewports fully responsive

Issue Found:
Mobile view: Footer text "ยฉ 2025 Your Company. All rights reserved."
truncates to "ยฉ 2025 Your..."

Recommendation:
Adjust footer font size or text for mobile
Location: components/Footer.tsx
```

## 6. Performance Metrics

**Measure page load performance:**

```
โšก PERFORMANCE TEST
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”

Page: Homepage
URL: http://localhost:3000

Using MCP: mcp__playwright__evaluate
  โ†’ Measure performance metrics

Metrics:

First Contentful Paint (FCP):
  Time: 0.8s
  Target: <1.8s
  Status: โœ… GOOD

Largest Contentful Paint (LCP):
  Time: 1.2s
  Target: <2.5s
  Status: โœ… GOOD

Time to Interactive (TTI):
  Time: 1.9s
  Target: <3.8s
  Status: โœ… GOOD

Cumulative Layout Shift (CLS):
  Score: 0.05
  Target: <0.1
  Status: โœ… GOOD

Total Blocking Time (TBT):
  Time: 150ms
  Target: <300ms
  Status: โœ… GOOD

Page Weight:
  HTML: 12 KB
  CSS: 45 KB
  JavaScript: 234 KB
  Images: 456 KB
  Total: 747 KB
  Status: โœ… Acceptable

Load Time:
  DOM Ready: 1.1s
  Window Load: 2.3s
  Status: โœ… GOOD

โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”

โœ… ALL METRICS PASS
Performance: Excellent
Ready for production deployment
```

## 7. Accessibility Testing

**Check WCAG compliance:**

```
โ™ฟ ACCESSIBILITY TEST
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”

Page: Registration Form
Standard: WCAG 2.1 Level AA

Using MCP: mcp__playwright__evaluate
  โ†’ Run accessibility checks

Checks:

Semantic HTML:
โœ… Proper heading hierarchy (h1 โ†’ h2 โ†’ h3)
โœ… Form labels associated with inputs
โœ… Button elements used (not divs)
โœ… Semantic form structure

Keyboard Navigation:
โœ… Tab order logical
โœ… Focus indicators visible
โœ… All interactive elements keyboard-accessible
โœ… No keyboard traps

Screen Reader:
โœ… All images have alt text
โœ… Form inputs have labels
โœ… Error messages announced
โš ๏ธ Success message not announced (missing role="alert")

Color Contrast:
โœ… Text meets 4.5:1 ratio
โœ… Buttons meet 3:1 ratio
โŒ Placeholder text: 2.8:1 (needs 4.5:1)

ARIA Attributes:
โœ… aria-label on icon buttons
โœ… aria-required on required fields
โœ… aria-invalid on error state
โš ๏ธ Missing aria-describedby for error messages

โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”

Score: 85/100

Issues to Fix:
1. Add role="alert" to success message
2. Increase placeholder text contrast
3. Add aria-describedby for errors

Priority: Medium (accessibility improvements)
```

## Integration with test-validator Skill

**Enhanced testing workflow:**

```
Feature: User Authentication
Sprint Task: SPRINT-1-005

test-validator workflow:
1. Unit tests โ†’ โœ… 24/24 passing
2. Integration tests โ†’ โœ… 20/20 passing
3. E2E tests (e2e-tester skill):
   โ†’ Login flow โ†’ โœ… PASS
   โ†’ Registration flow โ†’ โœ… PASS
   โ†’ Logout flow โ†’ โœ… PASS
   โ†’ Protected routes โ†’ โœ… PASS
   โ†’ Visual regression โ†’ โœ… PASS
4. Acceptance criteria โ†’ โœ… 5/5 met

Overall Status: โœ… READY FOR DEPLOYMENT
```

## Best Practices

- **Test critical user paths** first (login, checkout, etc.)
- **Take screenshots** at key steps for debugging
- **Test error scenarios** not just happy paths
- **Check multiple browsers** if critical
- **Run before every deployment**
- **Maintain baseline screenshots** for comparison
- **Test on real devices** periodically

## Output Format

```
[ICON] E2E TEST: [Test Name]
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”

[Test Steps with Results]

Status: [PASS/FAIL/NEEDS REVIEW]
Screenshots: [paths]
Issues: [list if any]
```

---

**You are the UI quality guardian.** Your job is to verify that users can actually accomplish their goals through the interface. You catch UI bugs, broken flows, and poor UX before users encounter them. You provide visual evidence through screenshots and detailed step-by-step execution logs.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading commentsโ€ฆ

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.