Playwright
Para escribir pruebas end-to-end fiables que verifican aplicaciones web en varios navegadores reales.
Framework de Microsoft para pruebas E2E y automatización de Chromium, Firefox y WebKit con una sola API.
Notas y contexto
Qué es
Playwright es un framework open source de Microsoft para pruebas end-to-end y automatización web. Permite controlar Chromium, Firefox y WebKit con una única API, en modo headless o con interfaz, sobre Linux, macOS y Windows. Está escrito principalmente en TypeScript y se distribuye bajo licencia Apache-2.0, además de tener bindings oficiales para JavaScript/TypeScript, Python, Java y .NET.
Para qué sirve
- Escribir pruebas end-to-end que ejercitan la aplicación real en los tres motores de navegador principales.
- Automatizar flujos de navegador: login, formularios, scraping o tareas repetitivas.
- Detectar regresiones visuales y funcionales antes de desplegar a producción.
- Generar pruebas grabando interacciones con la herramienta Codegen.
Cuándo usarlo
Es la opción recomendada cuando necesitas cobertura E2E multinavegador moderna y fiable, especialmente si trabajas con aplicaciones de una sola página. Su sistema de auto-wait reduce los tests inestables (“flaky”) frente a alternativas más antiguas como Selenium. Cypress es una alternativa popular, pero Playwright destaca por el soporte nativo de WebKit, la ejecución paralela y un mejor rendimiento en CI.
Ejemplo
Instalación e inicialización del proyecto de pruebas:
npm init playwright@latest
Un test básico con el runner integrado:
import { test, expect } from '@playwright/test';
test('tiene el titulo correcto', async ({ page }) => {
await page.goto('https://playwright.dev/');
await expect(page).toHaveTitle(/Playwright/);
await page.getByRole('link', { name: 'Get started' }).click();
await expect(page.getByRole('heading', { name: 'Installation' })).toBeVisible();
});
Ejecución de las pruebas:
npx playwright test
Puntos clave
- API única para Chromium, Firefox y WebKit, en headless o con interfaz.
- Auto-wait y aserciones que esperan a que los elementos sean accionables, reduciendo tests inestables.
- Test runner con ejecución paralela y aislamiento por contexto de navegador.
- Herramientas de depuración como Trace Viewer, Codegen y snapshots de accesibilidad.
Ten en cuenta
Playwright requiere Node.js (para el runner de JS/TS) y descarga sus propias versiones de los navegadores, lo que ocupa espacio en disco. La curva de aprendizaje es algo mayor que con herramientas centradas en un solo navegador, y al cubrir tres motores el tiempo de ejecución en CI puede crecer. El proyecto está activamente mantenido por Microsoft, con releases frecuentes.