En múltiples ocasiones hemos hablado de Selenium (sitio web de selenium), un conjunto de herramientas que probablemente será conocido por muchos de quienes nos visitáis. Para los que todavía no conocen Selenium, hoy vamos a hacer una pequeña introducción. A partir de esta introducción, veremos como utilizar selenium en conjunto con otras herramientas, para conseguir automatizar pruebas que nos puedan servir como pruebas de regresión, de integración, o como pruebas de humo.
Selenium, como hemos dicho más arriba, 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 incluye también un lenguaje específico de dominio para pruebas (Selenese, del que mañana publicaremos un listado de comandos) 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.

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.
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.
Excelente muy util para iniciarse en el uso de Selenium.. Gracias