ASD

Playwright Best Practices

Úsalo al escribir tests de Playwright, arreglar tests flaky, depurar fallos, POM, CI/CD, mocking de APIs, auth, accesibilidad y más: E2E, componentes, API, visual, seguridad, Electron y extensiones.

Oficial
Estrellas
354

en el repo

Actividad
57

0–100, la ruta de este skill

Actualizado
hace 24 días

último commit aquí

Commits
1

últimos 90 días

Contexto
6.6k tok

246 tok en reposo

Paquete
59 archivos

744 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add currents-dev/playwright-best-practices-skill --skill playwright-best-practices --agent claude-code

Se instala solo en este repositorio.

Qué hace

  • Enruta al agente hacia archivos de referencia específicos según la actividad de testing con Playwright que esté realizando
  • Provee un árbol de decisión para elegir entre POM, fixtures, mocks y arquitecturas de test
  • Define un ciclo de validación de tests: ejecutar, revisar trazas, corregir y repetir hasta que todos pasen

Úsalo cuando

  • Al escribir nuevos tests E2E, de componentes, API, GraphQL, visuales, accesibilidad o seguridad con Playwright
  • Al depurar tests fallidos, flaky, con timeouts o errores de consola
  • Al configurar CI/CD, Docker, sharding, reporting o project dependencies para Playwright
  • Al testear features específicas como autenticación, OAuth, WebSockets, geolocalización, iframes, canvas/WebGL, i18n, Electron o extensiones

No lo uses cuando

    Qué lo activa

    Di cualquiera de estas frases y el agente debería cargar este skill.

    • Ayúdame a escribir un test E2E en Playwright con Page Object Model
    • Mi test de Playwright es flaky, ¿cómo lo depuro?
    • Configura CI/CD con GitHub Actions para mis tests de Playwright
    • Necesito mockear el login OAuth en un test con Playwright

    SKILL.md

    En inglés

    Playwright Best Practices

    This skill provides comprehensive guidance for all aspects of Playwright test development, from writing new tests to debugging and maintaining existing test suites.

    Activity-Based Reference Guide

    Consult these references based on what you're doing:

    Writing New Tests

    When to use: Creating new test files, writing test cases, implementing test scenarios

    Activity Reference Files
    Writing E2E tests test-suite-structure.md, locators.md, assertions-waiting.md
    Writing component tests component-testing.md, test-suite-structure.md
    Writing API tests api-testing.md, test-suite-structure.md
    Writing GraphQL tests graphql-testing.md, api-testing.md
    Writing visual regression tests visual-regression.md, canvas-webgl.md
    Structuring test code with POM page-object-model.md, test-suite-structure.md
    Setting up test data/fixtures fixtures-hooks.md, test-data.md
    Handling authentication authentication.md, authentication-flows.md
    Testing date/time features clock-mocking.md
    Testing file upload/download file-operations.md, file-upload-download.md
    Testing forms/validation forms-validation.md
    Testing drag and drop drag-drop.md
    Testing accessibility accessibility.md
    Testing security (XSS, CSRF) security-testing.md
    Using test annotations annotations.md
    Using test tags test-tags.md
    Testing iframes iframes.md
    Testing canvas/WebGL canvas-webgl.md
    Internationalization (i18n) i18n.md
    Testing Electron apps electron.md
    Testing browser extensions browser-extensions.md

    Mobile & Responsive Testing

    When to use: Testing mobile devices, touch interactions, responsive layouts

    Activity Reference Files
    Device emulation mobile-testing.md
    Touch gestures (swipe, tap) mobile-testing.md
    Viewport/breakpoint testing mobile-testing.md
    Mobile-specific UI mobile-testing.md, locators.md

    Real-Time & Browser APIs

    When to use: Testing WebSockets, geolocation, permissions, multi-tab flows

    Activity Reference Files
    WebSocket/real-time testing websockets.md
    Geolocation mocking browser-apis.md
    Permission handling browser-apis.md
    Clipboard testing browser-apis.md
    Camera/microphone mocking browser-apis.md
    Multi-tab/popup flows multi-context.md
    OAuth popup handling third-party.md, multi-context.md

    Debugging & Troubleshooting

    When to use: Test failures, element not found, timeouts, unexpected behavior

    Activity Reference Files
    Debugging test failures debugging.md, assertions-waiting.md
    Fixing flaky tests flaky-tests.md, debugging.md, assertions-waiting.md
    Debugging flaky parallel runs flaky-tests.md, performance.md, fixtures-hooks.md
    Ensuring test isolation / avoiding state leak flaky-tests.md, fixtures-hooks.md, performance.md
    Fixing selector issues locators.md, debugging.md
    Investigating timeout issues assertions-waiting.md, debugging.md
    Using trace viewer debugging.md
    Debugging race conditions flaky-tests.md, debugging.md, assertions-waiting.md
    Debugging console/JS errors console-errors.md, debugging.md

    Error & Edge Case Testing

    When to use: Testing error states, offline mode, network failures, validation

    Activity Reference Files
    Error boundary testing error-testing.md
    Network failure simulation error-testing.md, network-advanced.md
    Offline mode testing error-testing.md, service-workers.md
    Service worker testing service-workers.md
    Loading state testing error-testing.md
    Form validation testing error-testing.md

    Multi-User & Collaboration Testing

    When to use: Testing features involving multiple users, roles, or real-time collaboration

    Activity Reference Files
    Multiple users in one test multi-user.md
    Real-time collaboration multi-user.md, websockets.md
    Role-based access testing multi-user.md
    Concurrent action testing multi-user.md

    Architecture Decisions

    When to use: Choosing test patterns, deciding between approaches, planning test architecture

    Activity Reference Files
    POM vs fixtures decision pom-vs-fixtures.md
    Test type selection test-architecture.md
    Mock vs real services when-to-mock.md
    Test suite structure test-suite-structure.md

    Framework-Specific Testing

    When to use: Testing React, Angular, Vue, or Next.js applications

    Activity Reference Files
    Testing React apps react.md
    Testing Angular apps angular.md
    Testing Vue/Nuxt apps vue.md
    Testing Next.js apps nextjs.md

    Refactoring & Maintenance

    When to use: Improving existing tests, code review, reducing duplication

    Activity Reference Files
    Refactoring to Page Object Model page-object-model.md, test-suite-structure.md
    Improving test organization test-suite-structure.md, page-object-model.md
    Extracting common setup/teardown fixtures-hooks.md
    Replacing brittle selectors locators.md
    Removing explicit waits assertions-waiting.md
    Creating test data factories test-data.md
    Configuration setup configuration.md

    Infrastructure & Configuration

    When to use: Setting up projects, configuring CI/CD, optimizing performance

    Activity Reference Files
    Configuring Playwright project configuration.md, projects-dependencies.md
    Setting up CI/CD pipelines ci-cd.md, github-actions.md
    GitHub Actions setup github-actions.md
    GitLab CI setup gitlab.md
    Other CI providers other-providers.md
    Docker/container setup docker.md
    Global setup & teardown global-setup.md
    Project dependencies projects-dependencies.md
    Optimizing test performance performance.md, test-suite-structure.md
    Configuring parallel execution parallel-sharding.md, performance.md
    Isolating test data between workers fixtures-hooks.md, performance.md
    Test coverage test-coverage.md
    Test reporting/artifacts reporting.md

    Advanced Patterns

    When to use: Complex scenarios, API mocking, network interception

    Activity Reference Files
    Mocking API responses test-suite-structure.md, network-advanced.md
    Network interception network-advanced.md, assertions-waiting.md
    GraphQL mocking network-advanced.md
    HAR recording/playback network-advanced.md
    Custom fixtures fixtures-hooks.md
    Advanced waiting strategies assertions-waiting.md
    OAuth/SSO mocking third-party.md, multi-context.md
    Payment gateway mocking third-party.md
    Email/SMS verification mocking third-party.md
    Failing on console errors console-errors.md
    Security testing (XSS, CSRF) security-testing.md
    Performance budgets & Web Vitals performance-testing.md
    Lighthouse integration performance-testing.md
    Test annotations (skip, fixme) annotations.md
    Test tags (@smoke, @fast) test-tags.md
    Test steps for reporting annotations.md

    Quick Decision Tree

    What are you doing?
    │
    ├─ Writing a new test?
    │  ├─ E2E test → core/test-suite-structure.md, core/locators.md, core/assertions-waiting.md
    │  ├─ Component test → testing-patterns/component-testing.md
    │  ├─ API test → testing-patterns/api-testing.md, core/test-suite-structure.md
    │  ├─ GraphQL test → testing-patterns/graphql-testing.md
    │  ├─ Visual regression → testing-patterns/visual-regression.md
    │  ├─ Visual/canvas test → testing-patterns/canvas-webgl.md, core/test-suite-structure.md
    │  ├─ Accessibility test → testing-patterns/accessibility.md
    │  ├─ Mobile/responsive test → advanced/mobile-testing.md
    │  ├─ i18n/locale test → testing-patterns/i18n.md
    │  ├─ Electron app test → testing-patterns/electron.md
    │  ├─ Browser extension test → testing-patterns/browser-extensions.md
    │  ├─ Multi-user test → advanced/multi-user.md
    │  ├─ Form validation test → testing-patterns/forms-validation.md
    │  └─ Drag and drop test → testing-patterns/drag-drop.md
    │
    ├─ Testing specific features?
    │  ├─ File upload/download → testing-patterns/file-operations.md, testing-patterns/file-upload-download.md
    │  ├─ Date/time dependent → advanced/clock-mocking.md
    │  ├─ WebSocket/real-time → browser-apis/websockets.md
    │  ├─ Geolocation/permissions → browser-apis/browser-apis.md
    │  ├─ OAuth/SSO mocking → advanced/third-party.md, advanced/multi-context.md
    │  ├─ Payments/email/SMS → advanced/third-party.md
    │  ├─ iFrames → browser-apis/iframes.md
    │  ├─ Canvas/WebGL/charts → testing-patterns/canvas-webgl.md
    │  ├─ Service workers/PWA → browser-apis/service-workers.md
    │  ├─ i18n/localization → testing-patterns/i18n.md
    │  ├─ Security (XSS, CSRF) → testing-patterns/security-testing.md
    │  └─ Performance/Web Vitals → testing-patterns/performance-testing.md
    │
    ├─ Architecture decisions?
    │  ├─ POM vs fixtures → architecture/pom-vs-fixtures.md
    │  ├─ Test type selection → architecture/test-architecture.md
    │  ├─ Mock vs real services → architecture/when-to-mock.md
    │  └─ Test suite structure → core/test-suite-structure.md
    │
    ├─ Framework-specific testing?
    │  ├─ React app → frameworks/react.md
    │  ├─ Angular app → frameworks/angular.md
    │  ├─ Vue/Nuxt app → frameworks/vue.md
    │  └─ Next.js app → frameworks/nextjs.md
    │
    ├─ Authentication testing?
    │  ├─ Basic auth patterns → advanced/authentication.md
    │  └─ Complex flows (MFA, reset) → advanced/authentication-flows.md
    │
    ├─ Test is failing/flaky?
    │  ├─ Flaky test investigation → debugging/flaky-tests.md
    │  ├─ Element not found → core/locators.md, debugging/debugging.md
    │  ├─ Timeout issues → core/assertions-waiting.md, debugging/debugging.md
    │  ├─ Race conditions → debugging/flaky-tests.md, debugging/debugging.md
    │  ├─ Flaky only with multiple workers → debugging/flaky-tests.md, infrastructure-ci-cd/performance.md
    │  ├─ State leak / isolation → debugging/flaky-tests.md, core/fixtures-hooks.md
    │  ├─ Console/JS errors → debugging/console-errors.md, debugging/debugging.md
    │  └─ General debugging → debugging/debugging.md
    │
    ├─ Testing error scenarios?
    │  ├─ Network failures → debugging/error-testing.md, advanced/network-advanced.md
    │  ├─ Offline (unexpected) → debugging/error-testing.md
    │  ├─ Offline-first/PWA → browser-apis/service-workers.md
    │  ├─ Error boundaries → debugging/error-testing.md
    │  └─ Form validation → testing-patterns/forms-validation.md, debugging/error-testing.md
    │
    ├─ Refactoring existing code?
    │  ├─ Implementing POM → core/page-object-model.md
    │  ├─ Improving selectors → core/locators.md
    │  ├─ Extracting fixtures → core/fixtures-hooks.md
    │  ├─ Creating data factories → core/test-data.md
    │  └─ Configuration setup → core/configuration.md
    │
    ├─ Setting up infrastructure?
    │  ├─ CI/CD → infrastructure-ci-cd/ci-cd.md
    │  ├─ GitHub Actions → infrastructure-ci-cd/github-actions.md
    │  ├─ GitLab CI → infrastructure-ci-cd/gitlab.md
    │  ├─ Other CI providers → infrastructure-ci-cd/other-providers.md
    │  ├─ Docker/containers → infrastructure-ci-cd/docker.md
    │  ├─ Sharding/parallel → infrastructure-ci-cd/parallel-sharding.md
    │  ├─ Reporting/artifacts → infrastructure-ci-cd/reporting.md
    │  ├─ Global setup/teardown → core/global-setup.md
    │  ├─ Project dependencies → core/projects-dependencies.md
    │  ├─ Test performance → infrastructure-ci-cd/performance.md
    │  ├─ Test coverage → infrastructure-ci-cd/test-coverage.md
    │  └─ Project config → core/configuration.md, core/projects-dependencies.md
    │
    ├─ Organizing tests?
    │  ├─ Skip/fixme/slow tests → core/annotations.md
    │  ├─ Test tags (@smoke, @fast) → core/test-tags.md
    │  ├─ Filtering tests (--grep) → core/test-tags.md
    │  ├─ Test steps → core/annotations.md
    │  └─ Conditional execution → core/annotations.md
    │
    └─ Running subset of tests?
       ├─ By tag (@smoke, @critical) → core/test-tags.md
       ├─ Exclude slow/flaky tests → core/test-tags.md
       ├─ PR vs nightly tests → core/test-tags.md, infrastructure-ci-cd/ci-cd.md
       └─ Project-specific filtering → core/test-tags.md, core/configuration.md
    

    Test Validation Loop

    After writing or modifying tests:

    1. Run tests: npx playwright test --reporter=list
    2. If tests fail:
      • Review error output and trace (npx playwright show-trace)
      • Fix locators, waits, or assertions
      • Re-run tests
    3. Only proceed when all tests pass
    4. Run multiple times for critical tests: npx playwright test --repeat-each=5

    Reproducido de currents-dev/playwright-best-practices-skill bajo licencia MIT. Leer esta página en markdown.

    Archivos

    59 archivos en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

    Antes de instalar

    Requiere tener Playwright instalado y configurado en el proyecto (usa comandos como npx playwright test).

    Detalles

    Categoría
    Testing y QA
    Licencia
    MIT
    Recursos incluidos
    Incluye scripts o referencias
    Código fuente
    Ver SKILL.md

    Etiquetas

    Skills relacionados

    Úsalo al completar tareas, implementar features mayores, o antes de mergear, para verificar que el trabajo cumple los requisitos.

    Costo de contexto al activarse
    739 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    anteayer
    testing qa

    Úsalo antes de afirmar que un trabajo está completo, corregido o pasando, antes de hacer commit o crear PRs: exige ejecutar comandos de verificación y confirmar la salida antes de cualquier afirmación de éxito.

    Costo de contexto al activarse
    912 tok
    Tamaño del paquete
    1 archivo
    Última actualización
    el mes pasado
    testing qa

    Úsalo al empezar trabajo de feature que necesita aislamiento del workspace actual, o antes de ejecutar planes de implementación: asegura un workspace aislado vía herramientas nativas o fallback a git worktree.

    Costo de contexto al activarse
    1.7k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    el mes pasado
    herramientas desarrollo