Aprende Inglés, Desarrollo Web, AI, Ciberseguridad y mucho más.

Antes: $249

Currency
$209
Comienza ahora

Termina en:

0 Días
17 Hrs
32 Min
58 Seg

Cypress vs. Selenium

2/23
Recursos

Aportes 12

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Para mi una de las características más fuertes de Cypress es la de retry-ability, la cual consiste en el runner reintentará alguna prueba que haya fallado.

Al día del hoy dos de estos Treade-Off

  • Multi tabs
  • Same-origin
    ya son posibles de hacer con Cypres versión 10, liberada recientemente

Cypress Framework E2E Testing

Como fue descrito en esta sesión, Cypress es una herramienta enfocada en la practicidad para la planeación y ejecución de pruebas, permitiendo correr y evaluar casos de usos que uno pudiera enfrentar en un desarrollo mediante web.
.

.
De la imagen podemos observar el stack tecnológico que engloba Cypress para el cual, en su documentación How It Works, se enfoca en la versatilidad a la gama amplia de escenarios.
.
Siendo un Framework, permite el desarrollo mediante el enfoque Test-Driven-Development TDD, agilizando el desarrollo de soluciones enfocadas a las pruebas.
.

Características de Cypress

Si bien. se mencionan varias en la sesión, en definitiva me quedo con la siguiente:
.

La mayoría de las herramientas de prueba, funcionan ejecutándose fuera del navegador ejecutando comando remotos. Cypress, a su vez, ejecuta el mismo ciclo de aplicación mediante un proceso de NodeJS permitiendo la comunicación síncrona para con las tareas que se realizan en curso.

.
De eso, podemos menciona que Cypress opera en la capa de red al leer y alterar el trafico de la web en curso, exponiendo dicha capa para con un proceso de automatización, brindando resultados más consistentes con nuestra área de Quality-Assurance QA.
.
Desarrollar con pruebas permitirá minimizar el radio de explosión de nuestra deuda técnica, enshurando nuestro código para futuros cambios.

Caracteristicas:

  • Viajes en el tiempo: nos permite ver nuestra prueba y como se ejecuto cada paso.

  • Depuracion de Errores

  • Espera automáticamente por los elementos

  • Spies, Stubs ando Clocks(Espias, Trozos y Relojes): son mas útiles para pruebas unitarias por que nos permite mockear ciertas funciones, espiar en ellas para ver cuando se ejecutan, si son llamadas etc.

  • Control de trafico de red: Se puede ir viendo que peticiones se hicieron en la red y todos sus estados(fallido, exitoso)

  • Resultados Consistentes: que cypress trata de atacar en en forma contundente los fields Items.

  • Nos ofrece captura de pantalla directamente de la red

Comprarcion entre Cypress y Selenium
selenium soporta todos los navegadores, cypress no.
cypress soporta solo JavaScript y TypeScripts y selenium es mas amplio.
Ambos son gratuitos en ciertas partes.
Cypress nos da reportes completos pero selenium tienes que elaborarlos así que lo hace mas rápido.

Cypress ya da soporte de Safari por medio de Webkit, aún está en fase experimental. Aquí pueden ver más información sobre los navegadores soportados:

https://docs.cypress.io/guides/guides/launching-browsers#WebKit-Experimental

Alguien se percato del mouse del profesor me da curiosidad el saber si es recomendable

no conozco ninguna otra diferencia, pero me pareció bastante interesante que comparara una herramienta con otra.

Dejare esto por aquí y me retiraré lentamente…
https://sorry-cypress.dev/
(Alternativa al dashboard pagado de Cypress)

Les comparto mis apuntes. 😀

¿Qué es Cypress?

Es una librería, pensada para englobar o ser framework de pruebas automatizadas desde pruebas e2e, unit test e integration test. Ya trae todo lo necesario para que solamente nos preocupemos para realizar las pruebas.

Features

Time travel

Nos permite viajar en el tiempo, podemos ver nuestra prueba, ver como fue la ejecución de cada paso.

Bullet debuggability

Facilita el trabajo a la hora de debuggear el proyecto.

Automatic waiting

Espera automáticamente por los elementos, no tenemos que estar preocupados por esperar los elementos en pantalla y que estén listos para la interacción.

Spies, stubs and clocks

Útiles para las pruebas unitarias para realizar mock en funciones, espiar en ellas, ver la ejecución de las mismas (caja blanca).

Network traffic control

Dentro del time travel vamos a poder ver que peticiones a la red se fueron realizando (network request), que sucede a la hora de realizar la petición, el estado de la petición, etc.

Resultados consitentes

Cypress ataca o lucha contra los flaky test, cuando la falla es aleatoria.

Capturas de pantalla y videos

Estas son proporcionadas de forma automática.

Trade-offs

Restricciones en la automatización

Cypress está pensado para las pruebas, no es una herramienta de automatización en general como Puppeteer. Cypress está enfocado directamente en pruebas, no podemos hacer webscriping y otras cosas que no están relacionas con pruebas.

Corre dentro del navegador

Todo el entorno de Cypress se ejecuta en el navegador, lo que provoca que no sea tan fácil ejecutar código como ser las librerías de Node.

Multi tabs

No se puede manejar multitabs.

Múltiples navegadores al mismo tiempo

No podemos usar múltiples navegadores a la vez, por ejemplo, no podemos abrir Chrome y Opera al mismo tiempo.

Same-origin

Es una política de seguridad, no podemos visitar diferentes dominios a la vez en la misma prueba.

Cypress vs Selenium

Cypress

  • Soporte a navegadores basados en Chromium.
  • Soporta JS y TS.
  • Tiene una capa gratuita y una de pago.
  • Reportes directos.
  • Ligeramente más rápido que Selenium.
  • Ataca mejor los flaky tests.
  • Curva de aprendizaje corta.

Selenium

  • Soporte a muchos navegadores.
  • Soporta múltiples lenguajes más alla de JS.
  • Gratis.
  • Los reportes hay que integrarlos de forma manual.

Conclusión

Todo depende el contexto del proyecto y del stack que estamos usando, basándose en eso usaremos uno u otro.

Hay una cosa que sale a relucir, es una gran desventaja para mi de cypress, es el tema de los dominios, al menos 2 proyectos en los que tengo en mente implementarlo necesitan cambiar de dominio, para pruebas puntuales dentro de la app es bueno, pero necesito más interacción con otras webapps, igual me lo piden y es muy útil tener el curso, espero aprender ambos, cypress y selenium para darle a cada uno sus aplicaciones correspondientes

estoy empezando en este mundo de las pruebas unitarias y End to End o de integración y debo decir después de tomar 3 clases mas que Cypress que pude configurar en muuuuucho menos el entorno de Cypress que el de Selenium, de verdad fue como comparar un tsuru con un Tesla, en gustos se rompen generos pero me gusta mas el Tesla (Cypress)