Tabla de Contenidos

07 - Pruebas E2E: Playwright

Una prueba E2E (*end-to-end*) ejecuta el sistema completo — interfaz, servidor y datos — como lo haría un usuario real: abre la aplicación en un navegador, interactúa con ella y comprueba el resultado visible. Playwright automatiza el navegador.

1. Qué se prueba

No se prueba cada regla de negocio con E2E: eso corresponde a las pruebas unitarias. Cada prueba E2E cubre un camino completo.

2. Playwright

Playwright controla un navegador real (Chromium, Firefox, WebKit) desde código Java:

public class LoginE2eTest {
    @Test
    void logsInAndShowsWelcome() {
        try (Playwright playwright = Playwright.create()) {
            Browser browser = playwright.chromium().launch();
            Page page = browser.newPage();

            page.navigate("http://localhost:8080/login");
            page.fill("#email", "ana@example.com");
            page.fill("#password", "secret-password");
            page.click("button[type=submit]");

            assertThat(page.locator(".welcome"))
                    .hasText("Welcome, Ana");
        }
    }
}

Elemento Función
Playwright.create() Inicia el motor de navegadores
Page Representa la pestaña abierta
fill, click Interactúan con los elementos
Locator Localiza un elemento por selector
assertThat Comprueba el estado visible

3. Espera automática

Playwright espera automáticamente a que los elementos estén listos antes de interactuar: no hace falta dormir entre acciones. Las comprobaciones reintentan hasta que la condición se cumple o se agota el tiempo de espera.

4. Buenas prácticas

Las pruebas E2E son las más lentas y frágiles de la pirámide. Si cada cambio rompe diez pruebas de interfaz por un selector cambiado, el coste supera el beneficio: prioriza flujos críticos y selectores estables.