Te va a interesar!

6/recent/ticker-posts

No todo es Selenium en la vida: Conozcan a Watir!

No vives de Selenium! No vives de Selenium! Para los que entran al mundo de Automation, que generalmente lo hacen por la puerta de la automatización de pruebas en la interfaz gráfica, el browser digamos, Selenium es LA herramienta a usar. No es cierto? Sea que vengas de Java, de C#, de Python...siempre la primera cosa que se dice en estos casos es "Al Seleniumóvil!".

Pero, mis queridos lectores, no todo es Selenium en la vida de la automatización de UI. De hecho, hay toda una fauna ahí afuera de herramientas muy interesantes para hacer nuestro trabajo! Y de eso se trata este primer post. Hoy les vengo a hablar de Watir.

Qué es Watir? No es un animalito de Sudamérica?

No, la verdad que no lo es. Fui yo que me lo confundí con el Wapití, que encima es de América de Norte. Bueno, basta de zoología! 

Watir es una librería opensource de Ruby para automatizar acciones sobre el browser. Si, lo mismo que Selenium. Al menos en principio. Nos va a permitir hacer click en botones, llenar campos de texto, capturar texto de elementos web y todo lo que normalmente haríamos con la vedette de la automatización en browser. 

Mientras Selenium soporta prácticamente todos los lenguajes más conocidos, no lo hace con Ruby. Tenemos Groovy, que no es más que un intento de skin de Ruby para Java (y uno muy bueno debo decir), pero no es lo mismo. Entonces, si estamos ante un proyecto en el que el desarrollo se hace en Ruby...qué hacer? Porque, sabrán por otros posteos, que opino que el lenguaje en el que se automatiza debería ser el mismo en el que se desarrolla. Esto es simplemente por un tema de sinergía con los devs, facilitar el debugging, el stacktrace que se pueda proveer con los defectos, la ayuda de parte de ellos muchas veces...en fin, si se puede elegir el mismo lenguaje, siempre háganlo!

Como les decía, Watir es la librería para automatizar en browser que nos provee Ruby. Se instala como todo en Ruby, con sus gemas (me encanta toda la terminología de Ruby!) 

Qué tiene de diferente y qué tiene de similar con Selenium?

Comparten varias similitudes, entre ellas ser ambos orientado a objetos, tener integración con Cucumber, la posibilidad de usar Page Object Model para organizar nuestras clases y mejorar el mantenimiento, la integración con SauceLabs para correr crossbrowser y los mismos locators para crear nuestros WebElements, no olvidemos que, detrás de bambalinas, usa la API de Selenium...pero también tiene algunas limitaciones respecto a este último. 
                              

Entre estas limitaciones están el hecho de que soporta menos variedad de Browsers, aunque no es tan trágico como se pueden imaginar. De los más usados los tiene a todos, como son: Chrome, Safari, IE, Edge y Firefox. No soporta Opera por ejemplo...pero para Desktop, eso no importa mucho, no?

Otra limitación obvia es la de los lenguajes que soporta: Watir es de uso exclusivo con Ruby. Como les decía al comienzo, este debería ser el motivo por el que terminaste usando Watir en una primer instancia. 

Otra diferencia que no deberían pasar por alto es el tema de la comunidad. Selenium es el más difundido, con lo que eso conlleva: Si tienen algún problema o se traban con algo, las chances son de que seguro encuentren la respuesta al problema en foros como StackOverflow y otros del estilo. La documentación está muy completa, hay librerías para lo que se les ocurra...mientras que Watir es de los menos usados en la comunidad, por lo que va a ser más difícil que encuentres la solución a ese problema específico que estabas teniendo. 

Sobre Mobile con Watir.

Actualmente no hay una manera real de automatizar mobile con Watir. Dicen estar trabajando en implementar Appium para poder hacerlo de forma nativa, pero ofrecen, a modo de workaround, el usar el browser en modo mobile manejando la configuración del mismo. Sinceramente a mi no me parece la manera correcta, ya que sabemos que emular un dispositivo móvil dista bastante de la experiencia real que podemos tener, sobre todo considerando la amplia variedad que hay en el mercado.

Conclusión.

Hoy les comenté de otra manera de automatizar que no es con Selenium. Aunque no es completamente cierto, porque Watir usa Selenium después de todo. Entonces...no es más que un wrapper glorificado de Selenium adaptado para Ruby? En mi opinión...si! Pero si estás trabajando con un equipo de desarrollo que usa Ruby, quizás quieras echarle un vistazo. De momento, no sería mi elección a la hora de automatizar, siendo posible usar Selenium nativo con Ruby también, sin la necesidad de meter Watir en el medio. 

No olviden suscribirse a la lista de email de la web, que voy a estar mandando unas noticias bastante interesantes referidas a los cursos que estoy dando en Patreon, charlas en vivo y mucho más!

Publicar un comentario

0 Comentarios