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.
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.
id, atributos data-testid, roles accesibles) a clases de estilo, que cambian con el diseño.