necesario disponer de una herramienta que simule la interacción de los usuarios con el browser. Cypress es esa herramienta o framework, que nos permite simular esa interacción. Ha sido producto de una evolución a partir de conceptos y frameworks anteriores como: Selenium, PhantomJS, Nightwatch y Puppeteer. En el caso de que nuestro aplicativo requiera un backend será necesario utilizar una copia de este que sea lo más exacta posible a lo que estará luego en producción. Principales ventajas No usa Selenium, por lo que es muy sencillo de integrar. Está hecho con Electron lo que le da acceso y control a una instancia de Chrome u otro navegador. Está enfocado exclusivamente en hacer e2e testing, y hacerlo muy bien. Funciona con cualquier librería o framework de frontend siempre que corran en un navegador. Los tests están escritos en JavaScript. Es un todo-en-uno, por lo que no requiere la instalación de paquetes de terceros para hacer su trabajo; sin embargo, se puede extender su funcionalidad con módulos adicionales. Es amigable con desarrolladores de QA. Es mucho más rápido que cualquier otra alternativa existente a la fecha. appium
Admite pruebas de dispositivos multiplataforma
(dispositivos reales y simuladores), así como la posibilidad de probar dispositivos remotos
Utiliza un WebDriver en su núcleo, lo que significa que
también puede escribir sus pruebas en una variedad de lenguajes de programación diferentes compatibles con Selenium como Java o Python
Se basa en un servidor HTTP basado en Node.Js con
una API REST para escuchar comandos y responder
'Appium Desktop' como una GUI multiplataforma
(Electron) para el servidor Appium, que también incluye un inspector para inspeccionar su aplicación con fines de depuración de prueba Usa la accessibilityLabelpropiedad para ubicar componentes en pruebas
Detox
Admite pruebas de dispositivos multiplataforma
(dispositivos y simuladores reales, pero no dispositivos iOS reales)
No se basa en WebDriver, sino que se centra
en EarlGrey y Espresso , que son los principales controladores nativos de Gray Box desarrollados por Google (código abierto)
Utiliza internamente clientes websocket con un
servidor proxy intermedio, lo que hace que su arquitectura interna sea más flexible y ofrece una bonificación de rendimiento, ya que las afirmaciones se evalúan directamente en el dispositivo.
Usa la testID propiedad para ubicar componentes en
pruebas
Requiere que también crear un APK para su código de
prueba de Android
Recomiendo usar Detox para las pruebas E2E (opinión y
experiencia personal), ya que la sincronización con los dispositivos es mucho menos dolorosa. Por ejemplo, esto significa que no necesitamos dormir por los segundos mientras el paquete de JavaScript se carga desde el paquete de paquetes.