Introducción al curso
Cypress Avanzado: Pruebas Automatizadas con Docker y Jenkins
Configuración Inicial de Cypress Avanzado en Node.js
Cookies y Localstorage
Gestión de Cookies en Cypress: Métodos Tradicionales y Experimentales
Automatización de Pruebas con Local Storage y Cypress
Emulando dispositivos
Emulación de Dispositivos Móviles con Cypress
Instalando plugins
Uso de Plugins y XPath en Cypress para Automatización Web
Flaky tests
Evitar pruebas inestables con Cypress: uso de retries y buenas prácticas
Interceptación de solicitudes de red con Cypress
Simulación de Errores de Red con Cypress Intercept
Buenas prácticas
Implementación de Page Object Model en Cypress
Comandos Personalizados en Cypress: Alternativa al Page Object Model
Variables de Entorno: Uso y Configuración en Cypress
Configuración de Variables de Entorno en Cypress
Visual testing
Implementación de Visual Testing con Cypress y Plugins
Seguridad
Seguridad en Cypress: Navegación y Pruebas entre Dominios
Manipulación de pestañas en Cypress: eliminar atributo target
Visitar múltiples dominios y compartir datos en Cypress 10
Creación de plugins en Cypress para compartir datos entre tests
Data Driven Test
Uso de Fixtures en Pruebas Automatizadas con Cypress
BDD
Configuración de Cucumber y Cypress para pruebas BDD
Reutilización de Step Definitions en Gherkin y Cucumber
Pruebas Automatizadas con Gherkin: Escenarios Outline y Tags
Reportes
Configuración y uso de múltiples reportes con Cypress
Configuración de Allure con Cypress y uso de plugins
Docker
Uso de Docker y Cypress para Pruebas Automatizadas
Dashboard
Conexión y uso del Dashboard de Cypress para pruebas automatizadas
Alternativa gratuita al dashboard de Cypress: instalación y uso
CI/CD
Integración de Jenkins y Cypress para Pruebas en Paralelo
Final
Instalación y uso del plugin Cypress Escenario Recorder
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
En el mundo del desarrollo de software, una de las mayores frustraciones para los desarrolladores son las pruebas inestables, o como se les conoce en inglés, los flaky tests. Estas son pruebas que a veces pasan y otras veces fallan sin una razón clara. Este fenómeno puede causar problemas serios, ya que lleva a perder tiempo y recursos tratando de identificar el problema. Vamos a explorar las causas comunes y cómo evitarlas para mejorar la estabilidad de nuestras pruebas.
Existen varias razones por las cuales las pruebas pueden ser inestables:
Para combatir los flaky tests, Cypress ofrece soluciones efectivas:
En el archivo de configuración de Cypress (cypress.config
), puedes habilitar los reintentos estableciendo el número de intentos deseados. Por defecto, esto está configurado en cero.
module.exports = {
retries: {
runMode: 2, // Número de intentos al correr con Cypress Run
openMode: 0 // Número de intentos al correr con Cypress Open
}
}
Utilizar comandos de consulta única en lugar de múltiples llamadas ayuda a que las pruebas sean más estables. Estos comandos permiten validar elementos dinámicos de manera más eficiente.
Aquí tienes un ejemplo de cómo implementar un single query command:
cy.get('ci-selector')
.should('have.text', 'Expected Text')
Esto permite que Cypress intente encontrar el elemento hasta que el texto coincida, reduciendo así la probabilidad de falla.
El siguiente ejemplo muestra la importancia de validar que un botón no esté deshabilitado antes de hacer clic:
cy.get('button[type=submit]')
.should('not.be.disabled')
.click();
Este comando verifica que el botón no esté desactivado antes de realizar la acción de clic, asegurando más estabilidad en la prueba.
Implementar las mejores prácticas de Cypress, como los single query commands y la configuración adecuada de reintentos, nos ayuda a crear pruebas más resistentes a cambios inesperados. Invito a los desarrolladores a aplicar estos principios en sus propios proyectos para disminuir la incidencia de flaky tests y mejorar la eficiencia en sus flujos de trabajo.
Finalmente, no olvidemos la importancia de continuar aprendiendo e incorporando estas herramientas en nuestra caja de herramientas para el desarrollo ágil y eficaz. ¡Nos vemos en la próxima clase donde continuaremos explorando cómo lidiar con los flaky tests a un nivel más profundo!
Aportes 1
Preguntas 0
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?