Las pruebas de extremo a extremo (E2E) son una parte crucial del ciclo de desarrollo de software, ya que aseguran que una aplicación funcione correctamente desde el punto de vista del usuario final. En este tema, aprenderás cómo utilizar Playwright para realizar pruebas E2E efectivas, aprovechando TypeScript para mejorar la robustez y mantenibilidad de tus scripts de prueba.

¿Qué son las Pruebas de Extremo a Extremo?

Las pruebas de E2E verifican el flujo completo de una aplicación, desde la interfaz de usuario hasta la base de datos y otros servicios de backend. El objetivo es simular el comportamiento del usuario real para garantizar que todos los componentes del sistema funcionen juntos como se espera.

Beneficios de las Pruebas E2E:

  • Cobertura Completa: Validan la funcionalidad de la aplicación en su totalidad.
  • Detección de Errores de Integración: Identifican problemas que pueden surgir cuando diferentes partes del sistema interactúan.
  • Experiencia del Usuario: Aseguran que la aplicación funcione como se espera desde la perspectiva del usuario final.

Configuración de Pruebas E2E con Playwright

Paso 1: Instalación de Playwright

Si aún no has instalado Playwright, puedes hacerlo ejecutando el siguiente comando en tu terminal:

npm install playwright

Paso 2: Configuración del Proyecto

Crea un archivo de configuración para Playwright, por ejemplo, playwright.config.ts, donde puedes definir las opciones de prueba, como el navegador, el tiempo de espera y las rutas de los archivos de prueba.

import { PlaywrightTestConfig } from '@playwright/test';

const config: PlaywrightTestConfig = {
  use: {
    browserName: 'chromium',
    headless: false, // Cambiar a true para ejecutar en modo headless
  },
  testDir: './tests', // Directorio donde se encuentran los archivos de prueba
};

export default config;

Paso 3: Escribir una Prueba E2E Básica

Crea un archivo de prueba, por ejemplo, tests/e2e.spec.ts, y escribe una prueba básica que navegue a una página web y verifique un elemento.

import { test, expect } from '@playwright/test';

test('navegar a la página de inicio y verificar el título', async ({ page }) => {
  await page.goto('https://ejemplo.com');
  const title = await page.title();
  expect(title).toBe('Título Esperado');
});

Explicación del Código

  • test: Función proporcionada por Playwright para definir una prueba.
  • page.goto(url): Navega a la URL especificada.
  • page.title(): Obtiene el título de la página actual.
  • expect: Función de aserción para verificar que el título sea el esperado.

Ejercicio Práctico

Ejercicio 1: Crear una Prueba E2E para un Formulario de Inicio de Sesión

Objetivo: Escribir una prueba que verifique el flujo de inicio de sesión en una aplicación web.

Instrucciones:

  1. Navega a la página de inicio de sesión.
  2. Completa el formulario con un nombre de usuario y contraseña.
  3. Haz clic en el botón de inicio de sesión.
  4. Verifica que el usuario sea redirigido a la página de inicio.

Solución:

import { test, expect } from '@playwright/test';

test('flujo de inicio de sesión', async ({ page }) => {
  await page.goto('https://ejemplo.com/login');
  await page.fill('#username', 'usuario');
  await page.fill('#password', 'contraseña');
  await page.click('button[type="submit"]');
  await expect(page).toHaveURL('https://ejemplo.com/home');
});

Explicación del Código

  • page.fill(selector, value): Completa un campo de entrada con el valor especificado.
  • page.click(selector): Hace clic en el elemento especificado.
  • expect(page).toHaveURL(url): Verifica que la URL actual sea la esperada después del inicio de sesión.

Errores Comunes y Consejos

  • Selector Incorrecto: Asegúrate de que los selectores utilizados en fill y click sean correctos y únicos.
  • Sincronización: Si la página tarda en cargar, considera usar page.waitForSelector para esperar a que un elemento específico esté presente antes de continuar.
  • Modo Headless: Ejecuta las pruebas en modo headless para una ejecución más rápida en entornos de CI/CD.

Conclusión

Las pruebas de extremo a extremo con Playwright y TypeScript te permiten simular interacciones de usuario reales y verificar que tu aplicación funcione correctamente en su totalidad. A medida que avances, podrás integrar estas pruebas en tu flujo de trabajo de desarrollo continuo para asegurar la calidad del software de manera constante.

En el próximo tema, exploraremos cómo realizar pruebas visuales con Playwright para verificar la apariencia de la interfaz de usuario.

Playwright con TypeScript: De Principiante a Avanzado

Módulo 1: Introducción a Playwright y TypeScript

Módulo 2: Comenzando con Playwright

Módulo 3: Fundamentos de Playwright y TypeScript

Módulo 4: Funciones Avanzadas de Playwright

Módulo 5: Estrategias de Automatización de Pruebas

Módulo 6: Técnicas Avanzadas de TypeScript

Módulo 7: Aplicaciones Reales de Playwright

Módulo 8: Conclusión del Curso y Próximos Pasos

© Copyright 2024. Todos los derechos reservados