Herramientas de testing: introducción a Selenium

Fernando F. Coelho11-Jul, 2019

Las nuevas tecnologías han revolucionado el mundo en muy poco tiempo y la gran mayoría de empresas no pueden actualizarse constantemente. Gracias a las diversas evoluciones podemos hoy hablar de procesos automatizados de software cuando hace no muchos años esto era impensable.

Este tipo de pruebas son habituales en cualquier desarrollo de software pero hoy en día comprobamos que algunas empresas no llegan a decantarse por este tipo de herramientas. Por eso vamos a hablar de uno de los mejores programas de testing.

¿Qué es Selenium?

Selenium es un entorno de pruebas que se utiliza para comprobar si el software que se está desarrollando funciona correctamente. Esta herramienta permite: grabar, editar y depurar casos de pruebas que se pueden automatizar.

Lo interesante de Selenium es que se pueden editar acciones o crearlas desde cero. También ayuda mucho en las pruebas de regresión porque consigue pruebas automatizadas que luego se pueden reutilizar cuando se necesite.

Comenzó a desarrollarse en 2004 por Jason Huggins y poco a poco se fueron uniendo varios especialistas. Un gran detalle es que este software es de código abierto (bajo licencia apache 2.0) y puede ser descargado y usado sin pagar. Si te estás preguntando “¿dónde puedo comprar Selenium? o ¿dónde puedo descargar Selenium?”, solamente tienes que entrar en la siguiente URL para descargar esta herramienta de manera gratuita.

Como curiosidad indicar que el significado de Selenium surgió a raíz de un comentario que Jason Huggins le hizo a un competidor de aquella época llamado Mercurio: el envenenamiento por mercurio se puede curar con Selenio. Esto provocó que la mayoría de personas que lo escucharon empezasen a llamar al proyecto de Huggins, “Selenium”.

Principales características de Selenium

  • Las acciones serán ejecutadas punto a punto, si así se considera.
  • A la hora de escribir el código tiene la opción de autocompletar.
  • Se puede referenciar a objetos DOM: nombre, ID o con XPath.
  • Ejecutar test complejos que ahorran muchas horas de trabajo.
  • Gran depuración y puntos de verificación
  • Almacenamiento en varios formatos los test realizados

¿Para qué sirve Selenium?

Su objetivo principal es comprobar que un software funcione correctamente. La mayoría de usuarios que trabajan con Selenium son programadores QA o Engineer QA, que trabajan no solo comprobando que todo funcione correctamente, sino también evitando problemas futuros, ya que ahí es dónde reside la mejor característica de Selenium para algunos Ingenieros QA.

A día de hoy, Selenium tiene un conjunto de herramientas de software y cada una muestra una perspectiva diferente. Muchos programadores deciden utilizar uno o dos a la vez para automatizar su proyecto, pero es mejor conocer todas las opciones y entender para qué sirve Selenium:

Selenium IDE

En sus comienzos era llamado Selenium Recorder. Permite editar, grabar y depurar lo que se muestra en el navegador. Muchos usuarios crean scripts que editan con comandos y sentencias para que cuando se haga la grabación de la página web quede todo registrado.

En agosto de 2017 explicaron que ya no continuaría el proyecto porque no sabían cómo evolucionarlo más, pero recientemente ha cambiado la situación. Según el propio equipo la mayor diferencia entre el IDE anterior y el nuevo, es que la extensión de Mozilla Firefox dependía de APIs que ya no eran compatibles con las versiones más recientes del navegador.

El nuevo Selenium IDE se ha diseñado como una extensión de navegador con soporte en Firefox y Chrome. Ofrecen una herramienta de línea de comandos para integrar constantemente servidores o ejecuciones de pruebas paralelas; tanto con uno o varios navegadores como con uno o varios sistemas operativos.

Entre sus nuevas características encontramos: configuración de puntos de ruptura, funciones de depuración, soporte para integración con terceros, reutilizar casos de pruebas, etc.

Selenium Remote Control

Remote Control (RC) es un sistema cliente/servidor que permite utilizar el navegador web de forma local o en otro ordenador. Lo mejor de todo es que se puede utilizar casi cualquier lenguaje de programación y formato de pruebas, pero con la liberalización de Selenium 2 se ha descartado en gran medida para favorecer a WebDriver.

Selenium WebDriver

Siendo el sucesor de Remote Control permite utilizar un navegador de forma local o en remoto. No requiere un servidor especial ya que se inicia una instancia del navegador y se controla de esta manera.

Cualquiera de estos lenguajes porque son compatibles con Selenium WebDriver: PHP, Java, .Net, Perl, Ruby o Python, aunque no es necesario que se dominen todos ellos ya que con desenvolverse bien con uno solo es más que suficiente.

La arquitectura de WebDriver es más simple que la de Remote Control pero eso no significa que sea peor. Por ejemplo, WebDriver es más rápido que RC, ya que habla directamente al navegador y, lo mejor de todo, utiliza el motor del propio navegador que se está utilizando en ese momento.

También interactúa con los elementos de la página de manera más realista, ¿por qué? Pues muy sencillo, si aparece un cuadro de texto que está deshabilitado en la página web, una persona “real” no podría escribir en dicho cuadro y WebDriver actuaría así, otras herramientas no actuarían de la misma manera.

Selenium Grid

Existen dos razones para querer utilizar Selenium Grid. Ejecutar pruebas con varios navegadores a la vez (con diferentes versiones si es necesario) y con diferentes sistemas operativos, de tal manera que puedes utilizar, por ejemplo, Google Chrome a la vez en Windows, iOS, Android, etc.

Por otro lado, tenemos que Selenium Grid puede reducir ampliamente el tiempo que tarda un paquete de pruebas en completarse. Si se quiere realizar un conjunto de 200 pruebas pongamos hipotéticamente que se tardan 8 horas en comprobarlo todo al 100%, al utilizar 4 máquinas diferentes con Selenium Grid veremos su tiempo reducido y aproximadamente tardará una cuarta parte del total requerido en un inicio.

Para proyectos muy grandes o pruebas de gran tamaño, como analizar una cantidad masiva de datos, es una excelente herramienta que te permitirá ahorrar mucho tiempo y dinero.

Conclusiones sobre Selenium

Selenium es una de las mejores herramientas de testing actual. Es muy avanzada y permite gestionar casi cualquier necesidad que tenga un especialista. No es un programa sencillo y necesita un amplio conocimiento de programación para poder utilizarlo. La única desventaja, que se puede considerar como tal, es la dificultad de aprendizaje, pero ocurre lo mismo en otras herramientas o lenguajes de programación.

Un profesional cualificado que sepa instalar, programar y adecuar la herramienta para cada proyecto va a solicitar, seguramente, un presupuesto elevado. En cualquier caso, Selenium permitirá ahorrar dinero a largo plazo porque automatizar las pruebas ahorrará mucho tiempo y recursos.

Fernando F. Coelho

QA, Tester & Digital Marketing