Instalación, configuración y ejemplos para pruebas end-to-end automáticas con Cypress.
Cypress es una herramienta para realizar pruebas de extremo a extremo en aplicaciones web en el navegador. Permite validar flujos como si de un usuario se tratara y ayuda a detectar fallos en la interfaz de forma intuitiva. En este artículo explicaremos todo lo necesario para instalar y implementar estas pruebas automáticas.
Para comenzar a usar Cypress, se requiere contar con Node.js instalado en el sistema. La instalación es directa mediante npm o yarn. Por ejemplo, con npm se puede instalar ejecutando el siguiente comando en la terminal:
npm install cypress --save-dev
Una vez instalado, se puede abrir la interfaz gráfica de Cypress con:
npx cypress open
Esta interfaz permite ver las pruebas disponibles y ejecutarlas en distintos navegadores soportados, como Chrome, Edge, Electron y Firefox entre otros.
Cuando se inicia Cypress por primera vez con npx cypress open
, se genera una estructura de carpetas como la siguiente:
cypress/|-- e2e/ # Pruebas E2E|-- fixtures/ # Datos simulados (JSON)|-- support/ # Utilidades y comandos personalizados|-- downloads/ # Archivos descargados durante las pruebascypress.config.js # Archivo de configuración de Cypress
cypress.config.js
Cypress permite personalizar su configuración a través del archivo cypress.config.js
o cypress.config.ts
en TypeScript. Ejemplo de configuración básica:
import { defineConfig } from 'cypress';
export default defineConfig({ e2e: { baseUrl: 'https://google.com', viewportWidth: 1280, viewportHeight: 720, defaultCommandTimeout: 6000, retries: 2, video: false, },});
Esta configuración establece la URL base, dimensiones del viewport, tiempo de espera por defecto y reintentos en caso de fallo.
Cypress ofrece varios beneficios para la realización de pruebas e2e, entre ellos:
Estas características facilitan la tarea de validar aplicaciones web y ayudan a detectar problemas a tiempo.
A continuación se muestra un ejemplo básico de cómo implementar una prueba con Cypress. En este caso, se verifica que una página web se cargue correctamente y contenga un texto específico.
describe('Prueba de carga de la página', () => { it('Debe cargar la página y mostrar el mensaje de bienvenida', () => { // Visita la URL de la aplicación cy.visit('https://google.com');
// Comprueba que la página contenga el texto "Google" cy.contains('Google').should('be.visible'); });});
Este ejemplo ilustra cómo se puede escribir una prueba simple que valide el comportamiento básico de una página. La estructura describe
e it
ayuda a organizar las pruebas de forma clara y comprensible.
Las pruebas pueden ejecutarse de dos formas:
Modo interactivo (GUI):
npx cypress open
Se abre la interfaz donde se pueden ejecutar pruebas manualmente.
Modo headless (sin interfaz, ideal para CI/CD):
npx cypress run
Este modo ejecuta todas las pruebas en segundo plano sin abrir una ventana de navegador.
Para escribir pruebas confiables y mantenibles, considera lo siguiente:
describe
e it
para segmentar pruebas de forma ordenada.fixtures
para pruebas consistentes.cy.wait()
.Cypress.Commands.add()
.beforeEach()
para reiniciar datos o autenticaciones.Cypress es una herramienta práctica para la realización de pruebas end-to-end en aplicaciones web. Con el ejemplo presentado, es posible dar los primeros pasos y adaptar las pruebas a las necesidades específicas de tu proyecto.