¿Te gustaría aprender Pruebas Automatizadas con Selenium?
Tenemos los cursos que necesitas. ¡Haz clic aquí!

Selenium ha sido  por excelencia el marco de trabajo de automatización de pruebas para soluciones basadas en web. Aunque hoy en el mercado existen muchísimas herramientas de prueba, una gran parte de ellas estan basadas en la filosofía y arquitectura de Selenium. 

Desde el último release oficial (version 3), quizás hemos tenido la sensación de  que Selenium estaba un poco abandonado  en torno a su  mantenimiento. Sin embargo ese tiempo de “blackout” en términos de actualizaciones y mantenimiento bien ha valido la pena ya que trajo consigo el resultado de un trabajo admirable de toda la comunidad para brindarnos una versión 4 beta bastante formidable.

La intención de este artículo es resaltar las características conocidas  de Selenium como marco de trabajo de automatización de pruebas  y dejar ver algunos de los cambios más resaltantes incluidos en su versión 4 (beta).

¿Que es Selenium?

Selenium es una herramienta de pruebas de código abierto, bajo licenciamiento Apache 2.0 (lo cual significa que puede ser utilizado de manera gratuita).  

Revisando un poco de historia, Selenium fue creado en 2004 por Jason Huggins, (quien fue CTO de Sauce Labs y fundador de Robot Maker), un notable colaborador cuya habilidad “super poder” es hacer software de pruebas,  y en conjunto con varios colaboradores  logro resolver las interacciones usuario / browser. 

¿Que Lenguajes soporta?

Aunque Selenium soporta una gran cantidad de lenguajes, los más populares en uso son: Ruby, Java, Python, C#, JavaScript, PHP, Perl.

Pruebas Funcionales y de Regresión con Selenium)
¿Que Navegadores  soporta?

Selenium funciona con los navegadores más modernos en sus últimas versiones, poniendo a disposición sus correspondientes webdrivers: Google Chrome, Microsoft Edge, Mozzilla, Opera Chromium, Apple Safari, Firefox.

Existen algunas excepciones para la gama de herramientas de Selenium en relación a los navegadores ccompatibles que más adelante veremos.

¿Que Sistemas Operativos soporta?

Los sistemas operativos que soporta selenium son los más comerciales: Microsoft Windows, Linux y Mac OS.

¿Cuáles son las presentaciones / herramientas que provee?

Selenium IDE: Es una herramienta (plugin) que te permite hacer grabaciones desde la pantalla de ejecución, es decir playback y playscreen fácilmente, siendo muy utilizada en la reproducción de bugs, y ejecución de tareas repetitivas dentro de los test. Selenium ID es soportado por los navegadores Firefox y Chrome. En resumen, Selenium IDE permite:

  • Grabar y reproducir  pruebas en Firefox y Chrome.
  • Organizar  pruebas en suites para una fácil gestión.
  • Guardar y cargar scripts, para su posterior reproducción.

Selenium GRID: Esta herramienta te permite  la ejecución de pruebas masivas en paralelo, distribuidas en distintas terminales (nodos) con distintos ambientes (sistemas operativos y navegadores) dirigidas desde un punto central (hub).

Generalmente Selenium Grid es utilizado para delegar y  acelerar nuestras pruebas  ya que permite:

  • Ejecutar pruebas en varios navegadores, varias versiones de navegador que se ejecutan en diferentes sistemas operativos.
  • Reducir los tiempos de ejecución. 

Nota: Grid 3 ya no posee soporte por lo que es recomendable utilizar Grid 4

Imagen #1  Ejemplo – Arquitectura Selenium Grid

Selenium Web Driver:  Es una de las herramientas de selenium con la que puedes realizar pruebas en soluciones /software basado en web, a través de los distintos navegadores.

Imagen #2  Ejemplo – Arquitectura Selenium Web Dirver

En la imagen es importante resaltar que el actual «JSON wire protocol» es reemplazado por el WebDriver protocol W3C como lo describiremos más adelante.

Remote Web Driver: también es posible utilizar el Web Driver de manera remota. Funciona de la misma manera que el Web Driver convencional con la diferencia de que los tests pueden correr en una máquina separada.  Esta modalidad requiere de una configuración especial, ya que trabaja bajo una arquitectura “cliente -servidor”, donde el cliente será tu Web Driver y tu servidor  Java, que se puede alojar en cualquier servidor de aplicaciones JEE.

Básicamente la diferencia entre ambos es la interacción con el browser, dado que  Web Driver interactua directamente con el browser mientras que Selenium RC implementa una “capa media” que negocia las interacciones entre  en browser y tus tests.

A continuación un cuadro comparativo  resumen que nos ayudará a discernir mejor las diferencias entre los tres (3) “sabores” de Selenium:

CaracterísticaSelenium IDESelenium RCSelenium Web Driver
InstalaciónMuy fácil de usar e instalarConfiguración complicadaConfiguración menos complicada que Selenium RC
Conocimiento / Experiencia de ProgramaciónNo es necesarioRequeridoRequerido
NavegadoresFunciona solo en Firefox  y ChromeSoporta todos los navegadoresSoporta todos los navegadores
Base de InteraccionesBasado en JavascriptBasado en JavascriptInteractúa nativamente con los navegadores
Método de EjecuciónNo requiere ningún servidor para ejecutar scriptsRequiere del inicio  del servidor (Selenium RC) para ejecutar scriptsNo requiere de ningún  servidor para ejecutar scripts ya que se comunica directamente con los browsers.
OperadoresNo soporta operadores condicionales y  bucles.Ejecuta operaciones condicionales y de bucles.Ejecuta operaciones condicionales y de bucles.
UsosUsado como herramienta de prototipo.Usado para escribir scripts avanzados.Usado para escribir scripts avanzados.
Uso de “Listeners”No soporta uso de listenersNo soporta uso de listenersSoporta uso de listeners
Orientado a ObjetoNo es orientado a objeto.Su API es semi  orientado a objetos y redundanteSu API es: Compacto y orientado a objeto
Tiempo de EjecuciónSu ejecución es lentaSu ejecución es lenta, pero más rápida que Selenium IDEjecución rápida.
PlataformasNo soporta plataformas Android y IOs.No soporta plataformas Android y IOs.Soporta plataformas Android y IOs.
CursorNo hace movimientos de cursor de mouseNo hace movimientos de cursor de mouseHace movimientos de cursor de mouse
Ayuda y ReportesIncorpora ayuda y reporte de resultadosIncorpora ayuda y reporte de resultadosNo tiene mecanismos propios para generar reportes de resultados (lo hace mediante librerías y plugins)
Selenium no es adecuado para los siguientes escenarios:

+ Captchas: Justamente los captchas fueron diseñados para proteger a las web de bots y spam, por lo que no están disponibles para una automatización con Selenium. 

+ Descarga de archivos: La API de selenium permite el inicio del proceso de descarga pero no da visibilidad del proceso en sí mismo.

+ Códigos de respuesta HTTP: Selenium no trabaja con códigos de respuesta HTTP, pero en cambio puede usar proxys de ser necesario.

+ Inicio de sesión en servicios de terceros: redes sociales, servicios en la nube o  cuentas de correo electrónico no son candidatas para un proceso de automatización ya que sería muy laborioso, y además estas aplicaciones proveen sus propias APIs para efectos de prueba. Aunque parte de esta limitación Selenium 4 la mejora en gran proporción.

+ Pruebas de rendimiento: definitivamente no es adecuado para este tipo de pruebas ya que no fue  diseñado con ese propósito.

Novedades y Mejoras de Selenium 4

+ La adopción del WebDriver W3C Protocol, y a su vez el retiro del protocolo de cableado  Json Wire protocol es uno de los cambios más significativos a nivel de arquitectura, lo que lleva a una mayor estabilidad de las pruebas en todos los navegadores.

+ La introducción de Localizadores Relativos, poniendo a disposición localizadores más legibles para el humano.

LocalizadorDescripción
aboveEl elemento web requerido esta  ‘above’ (encima) de un elemento particular
belowEl elemento web requerido esta  ‘below’ (debajo) de un elemento particular
to_left_ofEl elemento web requerido esta  ‘to the left of’ (a la izquierda)  de un elemento particular
to_right_ofEl elemento web requerido esta  ‘to the right of’ (a la derecha)  de un elemento particular
nearEl elemento web requerido esta ‘at most 50 pixels’ de distancia del un elemento especificado. 

+ Optimización del Selenium Grid

+ Selenium IDE para Firefox y Chrome  y su disponibilidad en extensiones.

+ Soporte nativo  de Chrome Dev Tools, con lo que puede ser posible la incorporación de pruebas de geolocalización inclusive.

Conclusiones

Con los cambios inluidos en la versión 4 de Selenium, se vislumbra un repunte importante en el uso de esta herramienta de automatización. Es importante prepararnos, conocer y manejar esta herramienta. Si aun no haz tenido la experienca de trabajar con ella date el permiso de conocerla y experimentar su gran alcance.

Además, no olvides que es la gran demandada en el mercado de herramientas de automatización, y el corazón de otras tantas emergentes. 

Te esperamos en los siguientes artículos en donde hablaremos más acerca de estos temas, los cuales hoy en día son de vital importancia en el mundo de la tecnología.

¿Te gustaría aprender Pruebas Automatizadas con Selenium?
Tenemos los cursos que necesitas. ¡Haz clic aquí!

About Author

NGuerrero

0 0 votos
Article Rating
Suscribir
Notificar de
guest
0 Comments
Comentarios.
Ver todos los comentarios
0
¿Te gusta este articulo? por favor comentax