RU

running-e2e-tests

Runs automated end-to-end tests to verify full user workflows across your application stack.

Install

mkdir -p .claude/skills/running-e2e-tests && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/6645" && unzip -o skill.zip -d .claude/skills/running-e2e-tests && rm skill.zip

Installs to .claude/skills/running-e2e-tests

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Execute end-to-end tests covering full user workflows across frontend
69 charsno explicit “when” trigger
Intermediate

Key capabilities

  • Simulate user workflows across browser and backend
  • Create page object models for reusable interactions
  • Configure multi-browser and responsive testing
  • Generate reports with screenshots and traces on failure

How it works

The skill organizes tests by user journey using page object models to encapsulate locators and actions. It supports multi-browser execution and uses session state files to handle authentication efficiently across tests.

Inputs & outputs

You give it
User journey definitions and test configuration
You get back
HTML test reports with failure details and traces

When to use running-e2e-tests

  • Verify user registration and login flows
  • Test critical CRUD feature workflows
  • Check search and filtering functionality
  • Validate checkout or payment processes

About this skill

E2E Test Framework

Current State

!cat package.json 2>/dev/null | grep -oE 'playwright|cypress|selenium' || echo 'No E2E framework detected'

Overview

Execute end-to-end tests that simulate real user workflows across the full application stack -- browser interactions, API calls, database operations, and third-party integrations. Supports Playwright (recommended), Cypress, Selenium, and Puppeteer.

Prerequisites

  • E2E testing framework installed (Playwright, Cypress, or Selenium WebDriver)
  • Application running in a test environment with seeded test data
  • Browser binaries installed (npx playwright install or Cypress binary)
  • Test user accounts created with known credentials
  • Environment variables configured for base URL, API keys, and test credentials

Instructions

  1. Identify critical user journeys to cover:
    • User registration and login flow.
    • Primary feature workflow (e.g., create item, edit, delete).
    • Search and filtering functionality.
    • Checkout or payment flow (if applicable).
    • Error handling (404 pages, form validation, session expiry).
  2. Create page object models (POM) for reusable page interactions:
    • One class per page or major component.
    • Encapsulate locators, actions (click, fill, select), and assertions.
    • Use data-testid attributes as primary selectors for stability.
  3. Write E2E test files organized by user journey:
    • Each test file covers one complete workflow.
    • Use beforeEach to navigate to the starting page and reset state.
    • Use afterEach to capture screenshots on failure.
    • Keep tests independent -- no test should depend on another test's output.
  4. Handle authentication efficiently:
    • Store authenticated session state to a file (storageState in Playwright).
    • Reuse session across tests that require login.
    • Create a separate auth setup fixture that runs once per worker.
  5. Configure multi-browser and responsive testing:
    • Run tests on Chromium, Firefox, and WebKit.
    • Test at mobile (375px), tablet (768px), and desktop (1280px) viewports.
    • Use Playwright projects to define browser/viewport combinations.
  6. Add retry and stability mechanisms:
    • Use expect with auto-waiting locators (Playwright) instead of explicit waits.
    • Configure test retries (max 2) for CI environments.
    • Add networkidle or domcontentloaded wait conditions for page transitions.
  7. Generate test reports with screenshots, traces, and video on failure.

Output

  • E2E test files organized by user journey in tests/e2e/ or e2e/
  • Page object model classes in tests/e2e/pages/
  • Playwright/Cypress configuration file with browser and viewport matrix
  • Authentication state file for session reuse
  • HTML test report with screenshots, traces, and failure details

Error Handling

ErrorCauseSolution
Element not found / timeoutSelector changed or element lazy-loaded after timeoutUse data-testid attributes; increase timeout; use waitFor with proper state checks
Test passes locally but fails in CIHeadless browser behavior differs or CI is slowerRun CI in headless mode locally to reproduce; increase timeouts; check viewport size
Authentication state expiredStored session tokens have short TTLRegenerate auth state before each test run; use long-lived test account tokens
Flaky test due to animationClick registered before animation completesDisable CSS animations in test config; use force: true on click; add waitForLoadState
Database state pollutionPrevious test left data that affects current testSeed database in beforeEach; use transactional rollback; reset via API endpoint

Examples

Playwright test for user registration flow:

import { test, expect } from '@playwright/test';

test('new user can register and see dashboard', async ({ page }) => {
  await page.goto('/register');
  await page.getByTestId('name-input').fill('Test User');
  await page.getByTestId('email-input').fill('[email protected]');
  await page.getByTestId('password-input').fill('SecurePass123!');
  await page.getByTestId('register-button').click();

  await expect(page).toHaveURL(/\/dashboard/);
  await expect(page.getByTestId('welcome-message')).toContainText('Test User');
});

Page object model:

export class LoginPage {
  constructor(private page: Page) {}
  async login(email: string, password: string) {
    await this.page.goto('/login');
    await this.page.getByTestId('email').fill(email);
    await this.page.getByTestId('password').fill(password);
    await this.page.getByTestId('submit').click();
    await this.page.waitForURL(/\/dashboard/);
  }
}

Playwright config with multi-browser projects:

export default defineConfig({
  projects: [
    { name: 'chromium', use: { ...devices['Desktop Chrome'] } },
    { name: 'firefox', use: { ...devices['Desktop Firefox'] } },
    { name: 'mobile', use: { ...devices['iPhone 14'] } },
  ],
  use: { screenshot: 'only-on-failure', trace: 'on-first-retry' },
});

Resources

When not to use it

  • When tests depend on the output of other tests
  • When using explicit waits instead of auto-waiting locators

Prerequisites

E2E testing framework installedApplication running in test environmentBrowser binaries installedEnvironment variables configured

Limitations

  • Tests may fail if selectors change or elements are lazy-loaded
  • Flaky tests can occur due to unhandled animations

How it compares

This approach uses page object models and session state reuse to ensure test stability and independence compared to basic script-based testing.

Compared to similar skills

running-e2e-tests side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
running-e2e-tests (this skill)127dReviewIntermediate
webapp-testing3533moReviewIntermediate
ui-ux-expert-skill919moReviewAdvanced
skill-creator1283moReviewAdvanced

Try saying

Example prompts that trigger this skill in your AI assistant.

More by jeremylongshore

View all by jeremylongshore

analyzing-logs

jeremylongshore

Analyze application logs to detect performance issues, identify error patterns, and improve stability by extracting key insights.

14123

ollama-setup

jeremylongshore

Configure auto-configure Ollama when user needs local LLM deployment, free AI alternatives, or wants to eliminate hosted API costs. Trigger phrases: "install ollama", "local AI", "free LLM", "self-hosted AI", "replace OpenAI", "no API costs". Use when appropriate context detected. Trigger with relevant phrases based on skill purpose.

1167

backtesting-trading-strategies

jeremylongshore

Backtest crypto and traditional trading strategies against historical data. Calculates performance metrics (Sharpe, Sortino, max drawdown), generates equity curves, and optimizes strategy parameters. Use when user wants to test a trading strategy, validate signals, or compare approaches. Trigger with phrases like "backtest strategy", "test trading strategy", "historical performance", "simulate trades", "optimize parameters", or "validate signals".

1071

generating-database-seed-data

jeremylongshore

Process this skill enables AI assistant to generate realistic test data and database seed scripts for development and testing environments. it uses faker libraries to create realistic data, maintains relational integrity, and allows configurable data volumes. u... Use when working with databases or data models. Trigger with phrases like 'database', 'query', or 'schema'.

1033

cursor-codebase-indexing

jeremylongshore

Execute set up and optimize Cursor codebase indexing. Triggers on "cursor index setup", "codebase indexing", "index codebase", "cursor semantic search". Use when working with cursor codebase indexing functionality. Trigger with phrases like "cursor codebase indexing", "cursor indexing", "cursor".

885

testing-mobile-apps

jeremylongshore

Execute mobile app testing on iOS and Android devices/simulators. Use when performing specialized testing. Trigger with phrases like "test mobile app", "run iOS tests", or "validate Android functionality".

810

You might also like

webapp-testing

anthropics

Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.

353585

ui-ux-expert-skill

fercracix33

Technical workflow for implementing accessible React user interfaces with shadcn/ui, Tailwind CSS, and TanStack Query. Includes 6-phase process with mandatory Style Guide compliance, Context7 best practices consultation, Chrome DevTools validation, and WCAG 2.1 AA accessibility standards. Use after Test Agent, Implementer, and Supabase agents complete their work.

91244

skill-creator

anthropics

Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.

128200

python-testing-patterns

wshobson

Implement comprehensive testing strategies with pytest, fixtures, mocking, and test-driven development. Use when writing Python tests, setting up test suites, or implementing testing best practices.

77204

dependency-upgrade

wshobson

Manage major dependency version upgrades with compatibility analysis, staged rollout, and comprehensive testing. Use when upgrading framework versions, updating major dependencies, or managing breaking changes in libraries.

26240

playwright-mcp

sfc-gh-dflippo

Browser testing, web scraping, and UI validation using Playwright MCP. Use this skill when you need to test Streamlit apps, validate web interfaces, test responsive design, check accessibility, or automate browser interactions through MCP tools.

33197

Search skills

Search the agent skills registry