Visitar múltiples dominios y compartir datos en Cypress 10
Clase 17 de 29 • Curso de Cypress Avanzado
Resumen
¿Cómo visitar múltiples dominios en la misma prueba?
Navegar por diferentes dominios dentro de una misma prueba es una herramienta avanzada que no todos conocen. Involucra ciertos pasos críticos y habilidades, que pueden marcar la diferencia en la ejecución exitosa de tests automatizados. Comenzamos por realizar ciertas configuraciones y el uso de una función experimental en Cypress. Exploramos cómo compartir variables de entorno para manejar datos entre visitas a diferentes dominios en un único test. Ahora, entremos en detalle:
¿Cómo iniciar el test con Cypress?
Primero, asegurémonos de estar usando la versión correcta de Cypress, ya que algunas funcionalidades discutidas pueden estar disponibles a partir de la versión 10. Empezamos escribiendo la estructura básica del test y visitando nuestro dominio principal.
cy.visit('https://mi-dominio-principal.com');
// Asegúrate de adaptar esta URL a tus necesidades
¿Cómo compartimos información entre dominios?
A menudo es necesario capturar información de un dominio y reutilizarla en otro. Aunque Cypress no recomienda algunas prácticas, podemos experimentar con ellas. Aquí, vamos a obtener un texto de un h1
y utilizarlo en otro dominio.
cy.get('h1').first().invoke('text').then((texto) => {
// Aquí guardamos el texto para usarlo más adelante
});
¿Qué es ci.origin
y cómo se utiliza?
La función ci.origin
es experimental y permite navegar entre distintos orígenes de forma más segura. Si la combinamos con el manejo de sesiones, se convierte en una potente herramienta para ejecutar pruebas complejas.
cy.origin('https://otro-dominio.com', {args: {texto}}, ({texto}) => {
cy.log(texto); // Aquí imprimimos el texto para verificar el flujo
});
Tener cuidado con variables indefinidas es crucial, porque Cypress ejecuta de forma asíncrona, lo cual puede resultar en valores inesperados.
¿Cómo garantizamos que las pruebas sean consistentes?
Al implementar esta técnica, pueden surgir inconsistencias. Para superarlas:
- Utilizamos variables de entorno para almacenar y recuperar datos de manera confiable a través de
cypress.env
. - Consideramos el uso de
afterEach
para limpiar variables después de cada test.
Cypress.env('textito', texto);
cy.log(Cypress.env('textito')); // Mostrar variable de entorno
Conceptos a tener en cuenta
- Siempre debemos regresar al dominio inicial después de usar
ci.origin
para prevenir errores. - El manejo adecuado de variables de entorno es clave para evitar invocaciones incorrectas.
Recomendaciones finales
Aunque estas técnicas avanzadas pueden parecer complejas al principio, su dominio puede mejorar la eficiencia y flexibilidad de nuestros tests. Recuerda que la práctica hace al maestro. No olvides explorar la documentación oficial de Cypress y estar al tanto de futuras actualizaciones que puedan simplificar estos procesos.
Aprender requiere tiempo y dedicación. No te preocupes si no dominas todo de inmediato; lo importante es continuar explorando y practicando. Nos encontramos en el siguiente módulo con más consejos y trucos para optimizar y robustecer tus pruebas automatizadas. ¡Sigue adelante, el camino del aprendizaje continúa!