top of page

Cypress: Selenium killer o una herramienta diferente?

Actualizado: 4 oct 2022

Juro que iba a encarar este post de otra manera. Había puesto de título "Hoy le digo adios a Selenium" porque, si me siguen en Twitter, habrán notado que llevo unas semanas de uso intensivo de Cypress en mi tiempo libre, para aprenderlo y entender por qué hay tanto ruido en torno a esta herramienta. Y, si bien creo que es superior en muchísimos aspectos y va a ser mi principal arma siempre que tenga la elección a la hora de automatizar, he concluido también que no es para todo el mundo.

laptop con sticker NPM
Vengan esos módulos de NPM!

¿Es más rápido? Si. ¿Es más confiable? Muchísimo! ¿Es más entretenido de usar? También. Seguro es un lío configurar todo para empezar...Ni de lejos, es super sencillo! Entonces...si es todo tan maravilloso, ¿por qué no simplemente gritar a los cuatro vientos que es la mejor opción para automatizar?


Primero y principal, siento que está orientado a otro público. Como ustedes sabrán, Selenium es LA herramienta para E2E automation testing hoy en día. Es la primera palabra que se le desliza a cualquier manager, recruiter y demás cuando buscan recursos para sus equipos. Con esto quiero decir que Selenium es algo que se usa en el mundo del testing más que nada. Y ustedes me dirán "Pero Pato, obvio que es así! Si el testing lo hacen los testers!". Error mis pequeños saltamontes...error. Con las metodologías ágiles, el shift left y la filosofía de que todos en el SDLC somos responsables de la calidad del software, muchos desarrolladores Front End están empezando a tomar el testing por mano propia. Y no, no me refiero al Unit Testing o siquiera a Integration...sino también al E2E, terreno hasta ahora exclusivo de los Automation Testers. No se rasguen las vestiduras! Tranquilos! Esto es una tendencia, no algo demasiado difundido hasta ahora.


Los devs no usan Selenium, de hecho diría que lo odian. Imaginen: Tienen que bajar WebDrivers y encargarse de que estén actualizados siempre, montar todo un proyecto además del proyecto de la app, lo que termina siendo una ensalada demasiado grande para una sola persona. Para colmo de males, Selenium tiene unas manías muy poco felices...


No es bueno bailando el tango asíncrono que, hoy por hoy con el intensivo uso de JS en las webs cada vez más complejas, hace que tengamos tests que a veces pasan, otras no y así sucesivamente. Esto no solo es malo para un desarrollador que necesita testear rápido lo que está haciendo, sino que a nosotros como Testers nos demanda un esfuerzo bastante grande (generalmente en la forma de Waits de WebDriver hasta en la sopa) para evitar que la credibilidad en los resultados se desplome hasta el piso.


Cuantas veces habrá pasado que un test falló, para luego pasar segundos después lo más bien. T