CONCEPTO · TOOLS
Instalar Playwright: guía básica
Agrega Playwright a tu proyecto, corre tu primer test y configúralo para guardar un screenshot y un trace cuando un test falle.
15 min · actualizado 2026-10
Objetivo
Al terminar tendrás Playwright instalado en tu proyecto, un test corriendo contra tu app local y las herramientas para ver por qué falló un test (un screenshot y un trace).
Playwright es un framework de pruebas end-to-end (E2E). Controla un navegador real (Chromium, Firefox o WebKit) como lo haría un usuario y comprueba lo que muestra la página.
Prerrequisitos
- Node.js (una versión LTS reciente) y npm.
- Un proyecto web que puedas correr en local.
- Una terminal abierta en la raíz de ese proyecto.
Esta guía cubre Playwright al estado de octubre de 2026.
Pasos
1. Agregar Playwright a tu proyecto
Desde la raíz del proyecto:
npm init playwright@latestHace algunas preguntas. Confirma o elige:
- TypeScript o JavaScript (por defecto: TypeScript).
- La carpeta de tests (por defecto:
tests, oe2esitestsya existe). - Si agregar un workflow de GitHub Actions (opcional, puedes omitirlo).
- Si instalar los navegadores de Playwright (por defecto: sí).
En un proyecto existente agrega las dependencias a tu package.json, crea un archivo playwright.config.ts y añade un test de ejemplo (example.spec.ts). Puedes volver a ejecutarlo después: no pisa tus tests existentes.
2. Correr los tests
npx playwright testPor defecto el navegador corre sin ventana (headless).
3. Abrir el reporte
npx playwright show-reportSirve el reporte HTML en local. Ábrelo con este comando, no con doble clic sobre el archivo.
4. Ver el navegador trabajando
npx playwright test --headed # abre una ventana del navegador
npx playwright test --ui # modo UI: pasos en vivo y depuración en el tiempo5. Apuntar Playwright a tu app
Agrega estas opciones al playwright.config.ts que se generó. Ajusta el comando y el puerto a tu proyecto:
import { defineConfig } from '@playwright/test';
export default defineConfig({
retries: 1,
webServer: {
command: 'npm run dev',
url: 'http://localhost:3000',
reuseExistingServer: !process.env.CI,
},
use: {
baseURL: 'http://localhost:3000',
trace: 'on-first-retry',
screenshot: 'only-on-failure',
},
});webServerlevanta tu servidor de desarrollo antes de correr los tests, y reutiliza uno que ya esté corriendo.baseURLpermite usar rutas relativas en los tests:page.goto('/login')abrehttp://localhost:3000/login.
6. Guardar la evidencia cuando un test falla
Las opciones de arriba ya lo hacen:
screenshot: 'only-on-failure'guarda un screenshot cuando un test falla.trace: 'on-first-retry'graba un trace (una línea de tiempo paso a paso del test) cuando un test se reintenta. Por eso estáretries: 1.
Abre un trace con:
npx playwright show-trace trace.zipEsta evidencia es la que te permite a ti, o a un agente, diagnosticar un fallo sin adivinar.
7. Escribir una comprobación mínima de tu propia app
import { test, expect } from '@playwright/test';
test('home page loads', async ({ page }) => {
await page.goto('/');
await expect(page).toHaveTitle(/.+/);
});Corre con npx playwright test. Cuando pase, puedes borrar el test de ejemplo que se generó.
Resultado esperado
npx playwright testtermina con tests en verde.npx playwright show-reportabre el reporte.- Tu configuración tiene
baseURL,webServer,traceyscreenshot.
Troubleshooting
Problemas comunes
npxonpmno se encuentran: instala Node.js y abre una terminal nueva.- Faltan los navegadores, o hay un desajuste de versión tras actualizar Playwright: corre
npx playwright install. Hazlo después de cada actualización de Playwright para que los binarios de los navegadores coincidan. - Conexión rechazada al correr los tests: tu app no está corriendo o el puerto es incorrecto. Revisa
webServer.commandywebServer.url. webServeragota el tiempo de espera: laurldebe responder una vez que arranca el comando. Verifica que el comando realmente levante tu servidor y que el puerto coincida.- No hay trace tras un fallo:
trace: 'on-first-retry'solo graba cuando un test se reintenta. Manténretries: 1. - El reporte sale en blanco al abrirlo como archivo: usa
npx playwright show-report.
Siguiente paso
Escribe tu primer flujo end-to-end con un agente: elige un flujo crítico de tu proyecto, haz que el agente lo planifique, genere el test y reporte el resultado.