Selenium, es un conjunto de herramientas que nos van a permitir automatizar navegadores web para crear conjuntos de pruebas sobre aplicaciones web. Entre estas herramientas está Selenium IDE, una herramienta de grabar/reproducir para crear pruebas sin usar ningún lenguaje de programación. Está implementado como una extensión de Firefox y permite grabar, editar y depurar pruebas. Originalmente se le conoció como Selenium Recorder.
Selenium fue originalmente desarrollado por Jason Huggins en 2004 y pronto se unieron al esfuerzo otras personas especialistas en pruebas y programación. Es un software de código abierto bajo la licencia apache 2.0 que puede ser descargada y usada sin cargo. El nombre proviene de una broma hecha por Huggins burlándose de un competidor llamado Mercury (mercurio) diciendo que el envenenamiento por mercurio puede ser curado tomando complementos de Selenio. Los participantes tomaron el nombre y siguieron con él.
Selenium incluye también un lenguaje específico de dominio para pruebas (Selenese) para escribir pruebas en una amplia variedad de lenguajes de programación, incluidos Java, C#, Ruby, Groovy, Perl, Php y Python. Las pruebas creadas pueden ejecutarse entonces usando la mayoría de los navegadores web modernos en diferentes sistemas operativos como Windows, Linux y OS X.
Otra de las herramientas es Remote Control, encargada de ejecutar los test en diferentes navegadores y en diferentes plantaformas. Remote Control está formado por un servidor escrito en Java, encargado de abrir y cerrar el navegador, y actuar a modo de proxy para las peticiones web que vayamos lanzando, y un conjunto de librerias para el lenguaje de programación que elijamos. Con la liberación de Selenium 2, en Julio de 2011, Selenium RC fue oficialmente descartado en favor de Selenium WebDriver.
WebDriver es el sucesor de Remote Control. WebDriver acepta comandos (enviados en Selenese o vía el API de cliente) y los envía a un navegador. Esto se implementa a través de un controlador del navegador específico para cada navegador que envía los comandos y trae los resultados de regreso. diferencia de Selenium 1, donde el servidor Selenium RC era indispensable, en Selenium WebDriver no se requiere de un servidor especial para ejecutar las pruebas, en vez de ello WebDriver inicia una instancia del navegador y lo controla.
Simon Stewart, creador de Webdriver, el sucesor de Remote Control, también fue desarrollador en Google, como Jason Huggins, y posteriormente de Selenium y Facebook.
Otra parte importante es Selenium Grid, que permite coordinar multiples sevidores para asi poder ejecutar scripts en multiples plataformas y equipos al mismo tiempo. Grid permite ejecutar pruebas en paralelo en múltiples máquinas y manejar diferentes versiones y configuraciones de manera centralizada.
Entonces repasando la descripción
Selenium es un conjunto de utilidades que facilita la labor de obtener juegos de pruebas para aplicaciones web. Para ello nos permite grabar, editar y depurar casos de prueba, que podrán ser ejecutados de forma automática e iterativa posteriormente.
Además de ser una herramienta para registrar acciones, permite editarlas manualmente o crearlas desde cero. Las acciones se basan en el uso de diferentes API’s en diferentes lenguajes (PHP, Ruby, JAVA, Javascript, etc). Entre su principales características podemos nombrar:
- Facilidad de registro y ejecución de los test.
- Referencia a objetos DOM en base al ID, nombre o a través de XPath.
- Auto-completado para todos los comandos.
- Las acciones pueden ser ejecutadas paso a paso.
- Herramientas de depuración y puntos de ruptura (breakpoints).
- Los test pueden ser almacenados en diferentes formatos.
El potencial de esta herramienta puede ser utilizado para la grabación de las pruebas funcionales durante la Generación de pruebas de regresión. Con este servicio se consigue obtener una batería de pruebas automatizadas que podrán ser utilizadas cuando sea necesario repetir las pruebas.
Recursos necesarios
Los navegadores mas conocidos compatibles con la utilización de Selenium son:
- Explorer
- Mozilla Firefox
- Google Chrome
- Safari
Las componentes de Selenium que son necesarias para la grabación y ejecución de las pruebas son:
- Selenium client v1.0.1: cliente de Selenium, necesario para crear pruebas Junit con Selenium.
- Selenium IDE v1.0.2: plugin de Firefox para la grabación de las pruebas, paso a paso.
- Selenium Server v1.0.1: servidor de Selenium, que es el que realiza las pruebas.
Otras consideraciones
- La versión de Java necesaria es la JDK 1.6.0_16.
- Es recomendable tener instalado un entorno de desarrollo, por ejemplo Eclipse 3.4.2.
- Otra herramienta recomendable ya que nos va a ser muy útil para el reciclaje de las pruebas es Firebug. Se trata de un plugin de Firefox que permite inspeccionar el código HTML de una página y, entre otras opciones, obtener el Xpath de los diferentes elementos.
- Para que las pruebas puedan ser extendidas para y puedan ser ejecutadas en varios navegadores, necesitaremos tener instalada la herramienta JUnit.
Te esperamos en los próximos artículos en donde hablaremos mas acerca de estos temas que hoy en día son de importancia e interés en el mundo de la tecnología.