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.