Introducción a Selenium


En esta nueva entrada vamos a seguir hablando del Testing Automatizado y vamos a hablar de una de las herramientas más utilizadas para esto, Selenium.

¿Que es Selenium?

Es una suite de herramientas OpenSource para la automatización de pruebas sobre aplicaciones web. Corre dentro navegadores reales, es decir, no simulaciones de navegadores y es multiplataforma.

Fundamentalmente, lo que hace es permitirnos abrir un navegador, manejar el navegador (abrir URLs, ingresar datos, hacer clics sobre los links) y verificar el estado del navegador (¿La sección esta visible?, ¿Determinado texto esta presente?, etc…).
Esta compuesto por 4 herramientas llamadas Selenium Core, Selenium IDE, Selenium RC y Selenium Grid.
El nombre Selenium surge de: “Selenium is the key mineral to protect body from Mercury toxicity”, es decir,  “Selenium es el mineral clave para proteger el cuerpo de la toxicidad del Mercurio”, haciendo referencia a la herramienta paga (y costosa) de HP/Mercury llamada QTP.

Selenium Core

Es la primera versión de Selenium y la base sobre la cual trabajan todas las demás herramientas. Traduce las ordenes escritas en Selenese a funciones Javascript que realizan acciones sobre la interfaz de la aplicación y las pasa al navegador junto con la aplicación embebida en un marco. Es la menos recomendada para trabajar actualmente ya que requiere deployar la herramienta en el servidor de la aplicación con cada cambio que hagamos a los tests.
Si les interesa pueden comenzar por Getting Started with Selenium Core.

Selenium IDE

Es un plugin para Firefox que nos permite grabar y reproducir los escenarios de las pruebas automatizadas. Es muy fácil de usar, permite agregar Asserts y Validaciones, además de poder escribir, editar, depurar y ejecutar los scripts grabados durante la ejecución del escenario a automatizar. Además, una vez creados los tests, estos pueden exportarse en HTML (Selenese) o cualquiera de los lenguajes de programación soportados.
Selenium IDE
Selenium IDE

Instalación:

Pueden ver el demo oficial.

Selenium RC

Permite escribir las pruebas en varios lenguajes de programación y correrlas localmente contra cualquier sitio HTTP/S usando un navegador con JavaScript habilitado. El correr las pruebas dentro de un lenguaje de programación real tiene múltiples ventajas ya que los límites son casi nulos, desde al manejo del flujo de ejecución (for, while, if, try-catch, etc.), hasta el acceso/escritura a BBDD, archivos de cualquier tipo, generación de reportes en múltiples formato, una interfaz gráfica y más.
Esto soluciona los problemas de seguridad relacionados a cross-site scripting ya que enmascara la URL real para simular que Selenium está en el mismo dominio que la AUT. El servidor incluye el Selenium Core “empaquetado”.

– Estas se comunican con el RC server a través de determinado puerto y le pasan las acciones a ejecutar sobre la aplicación
Tiene 2 partes:
  • Un servidor (local) que puede abrir y cerrar automáticamente el navegador y que actúa como un proxy HTTP para las peticiones web de esos navegadores
  • Librerías “driver” para los lenguajes
Selenium RC
Arquitectura de Selenium RC
Instalación:
Para poder utilizarlo deben poner la consola del lenguaje que utilicen junto al script y levantar el core para la ejecucion del codigo.
A modo de ejemplo les paso unas lineas para una prueba rapida:
  • Descomprimir el ZIP
  • Cambiar directorios por: selenium-remote-control-0.9.0/server
  • Desde la linea de comandos ejecutar:  java -jar selenium-server.jar -interactive
  • Desde la consola interactiva ejecutamos:
    • cmd=getNewBrowserSession&1=*iexplore&2=https://josepablosarco.wordpress.com
  • Se abre el navegador, ejecutamos la siguiente linea:
    • cmd=open&1=https://josepablosarco.wordpress.com
Más información:

Selenium Grid

Extiende a Selenium RC para distribuir los tests en múltiples servidores, ahorrando tiempo en la ejecución de estos ya que corren en paralelo. Permite trabajar con varios Servidores RC en paralelo corriendo pruebas en múltiples ambientes a la vez y hace que estos aparezcan como uno solo, simplificando mucho el uso de toda la infraestructura disponible.
Como funciona Selenium Grid
Como funciona Selenium Grid

Más informacion:

2 pensamientos en “Introducción a Selenium”

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s