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.

  • Flujos críticos: login, registro, compra, alta de datos. Pocos y bien elegidos.
  • La integración de todo: que la interfaz, la API y la base de datos funcionan juntas.
  • Lo que el usuario ve: el resultado visible de la operación, no los detalles internos.

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

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

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.

  • Datos controlados: cada prueba crea o usa datos conocidos; si toca la base de datos, se prepara y se limpia.
  • Selectores estables: preferir atributos semánticos (id, atributos data-testid, roles accesibles) a clases de estilo, que cambian con el diseño.
  • Independientes: cada prueba puede ejecutarse sola y en cualquier orden.
  • Pocas: la pirámide se apoya en las unitarias; E2E cubre los flujos que, si fallan, rompen el producto.
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.
  • clase/daw/ed/2eval/e2e.txt
  • Última modificación: 2026/10/12 12:45
  • por cesguiro