2. DEFINICION
Es un entorno de pruebas de software para
aplicaciones basadas en la web. Selenium provee
una herramienta de grabar/reproducir para crear
pruebas sin usar un lenguaje de scripting para
pruebas (Selenium IDE). Incluye también un
lenguaje específico de dominio para pruebas
(Selanese) para escribir pruebas en un amplio
número de lenguajes de programación populares
incluyendo Java, C#, Ruby, Groovy, Perl, Php y
Python. Las pruebas pueden ejecutarse entonces
usando la mayoría de los navegadores web
modernos en diferentes sistemas operativos como
Windows, Linux y OSX.
3. COMPONENTES DE SELENIUM
Es un entorno de desarrollo integrado para pruebas con Selenium. Está
implementado como una extensión de Firefox y permite grabar, editar y depurar
pruebas. Originalmente se le conoció como Selenium Recorder. Se pueden
desarrollar automáticamente scripts que se pueden editar manualmente con
autocompletado de las sentencias, moviendo rápidamente comandos. Los scripts se
generan en Selanese, un lenguaje de scripting especial para Selenium. Selanese
provee comandos que ejecutan acciones sobre objetos en el navegador, como hacer
click en un enlace, seleccionar de una lista de opciones, verificar la presencia de un
texto en particular así como para tomar la totalidad de la página producto de las
acciones.
Características:
Grabación y reproducción fácil
Selección inteligente de campos usando ID, nombre o XPath según se necesite.
Autocompletado de los comandos de Selenium más comunes.
Pruebas de revisión cruzada
Depuración y puntos de verificación (breakpoint)
Almacenar las pruebas como Selanese, Ruby, Java y otros formatos.
Soporte al archivo user-extensions.js
Opción para acertar el título de la página.
Opción de modificarle a la medida con el uso de complementos
4. COMPONENTES DE SELENIUM
Selenium Client API
Interfaz de programación de aplicaciones (API) de
clientes Como alternativa a escribir pruebas en
Selanese, las pruebas pueden escribirse en varios
lenguajes de programación, éstos se comunican con
Selenium mediante llamadas a los métodos de
Selenium Client API. Actualmente Selenium provee
API para Java, C#, Ruby y Python. Con Selenium 2
se presentó una nueva API de clientes, con
WebDriver como componente central, aunque la
anterior API puede seguirse usando llamando a la
clase Selenium.
5. COMPONENTES DE SELENIUM
Selenium Remote Control (RC)
Es un servidor escrito en Java que acepta comandos al navegador vía
HTTP. RC hace posible escribir pruebas automatizadas para aplicaciones
web, en cualquier lenguaje de programación lo que permite una mejor
integración de Selenium a entornos de prueba existentes. Para hacer la
escritura de pruebas más fácil, Selenium actualmente provee controladores
de dispositivos para PHP, Python, Ruby,.NET, Perl y Java. El controlador de
Java puede usarse para JavaScript vía el motor Rhino. Selenium Remote
Control fue una refactorización de Driven Selenium o Selenium B, la
versión original lanzaba directamente un proceso para el navegador en
cuestión desde el lenguaje de prueba; el protocolo de cable (confusamente
llamado Selanese también en aquel tiempo) fue reimplementado al portarse
a cada lenguaje. Después de la refactorización, hubo un proceso
intermediario demonio entre el script controlador y el navegador. Los
beneficios incluyeron la capacidad de controlar navegadores remotos y
reducir la necesidad de portar el código a un número creciente de
lenguajes. Con la liberación de Selenium 2, Selenium RC fue oficialmente
descartado en favor de Selenium WebDriver.
6. COMPONENTES DE SELENIUM
Selenium WebDriver
Selenium WebDriver es el sucesor de Selenium RC. Selenium 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. La
mayoría de los controladores de navegador lanzan y acceden a la aplicación de navegador (como Mozilla
Firefox o Internet Explorer), pero también hay un controlador para HtmlUnit que simula un navegador. A
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; sin embargo puede usarse Selenium Grid (ver abajo) para ejecutar pruebas en
sistemas remotos (ver más abajo). Desde inicios de 2012, Simon Stewart de Google (inventor del WebDriver)
y David Burns de la Fundación Mozilla se encuentran negociando con el W3C que WebDriver se convierta en
un estándar de Internet, como tal Selenium-Webdriver (Selenium 2.0) apunta a ser la implementación de
referencia del estándar WebDriver en varios lenguajes de programación. A la fecha (marzo de 2013)
Selenium-WebDriver está completamente implementado y soportado en Java, Ruby, Python y C#. En la
práctica, esto significa que la API de Selenium 2.0 tiene significativamente menos llamadas que el API de
Selenium 1.0. Donde Selenium 1.0 intentaba proveer una interfaz rica en muchas operaciones, Selenium 2.0
intenta proveer de los bloques de construcción básicos con los cuales los desarrolladores puedan programar
su propio lenguaje específico de dominio. Uno de ellos ya existe y es el proyecto Watir en Ruby que tiene
una historia rica en buen diseño. Watir-WebDriver implementa el API de Watir como un envolvente del
Selenium-Webdriver en Ruby. Watir-WebDriver se crea de forma completamente automática, basado en las
especificaciones del WebDriver y HTML.
7. COMPONENTES DE SELENIUM
Selenium Grid
Es un servidor que permite usar instancias de
navegador ejecutándose en máquinas remotas. Con
Selenium Grid, uno de los servidores actúa como
concentrador. Las pruebas contactan al concentrador
para obtener acceso a instancias de navegadores; el
concentrador lleva una lista de instancias de los
navegadores (Nodos de WebDriver) y permiten a las
pruebas usar estas instancias. Selenium Grid permite
ejecutar pruebas en paralelo en múltiples máquinas y
manejar diferentes versiones y configuraciones de
manera centralizada.
8. REQUERIMIENTOS.
En este punto se indicará la compatibilidad de este
plugin con diferentes configuraciones (navegador /
sistema operativo / lenguaje de programación),
describiendo las acciones permitidas o bien los
problemas encontrados al ejecutarlo con esa
configuración.
9. NAVEGADOR
Navegador Funcionamiento
Firefox 3 Grabar y reproducir test
Firefox 2 Grabar y reproducir test
IE 8b1 No esta soportado
IE 7 No esta soportado
Safari 3 No esta soportado
Safari 2 No esta soportado
Opera 9 No esta soportado
Opera 8 No esta soportado
Otros No esta soportado
10. SISTEMA OPERATIVO
Sistema operativo Funcionamiento
Windows Trabaja con Firefox 2 o mas
OS X Trabaja con Firefox 2 o mas
Linux Trabaja con Firefox 2 o mas
Solaris Trabaja con Firefox 2 o mas
Otros
Debería de trabajar con Firefox
2 o mas
11. LENGUAJ E DE PROGRAMACION
Lenguaje Funcionamiento
C# Genera código
Java Genera código
Perl Genera código
PHP Genera código
Python Genera código
Ruby Genera código
Otros Genera código personalizado
18. EJEMPLO DE NAVEGACIÓN CON SELENIUM
TESTRUNNER.
Para la realización de este ejemplo se utilizará el
ejemplo de navegación básico del apartado 6, en
este ejemplo se pretende lanzar el script desde la
opción de TestRunner con el objetivo de obtener
los detalles de la ejecución y visualizar información
de la ejecución.Para ello:
Abrir el script de navegación.
Ejecutar la opción de ejecución en modo
TestRunner.
Antes de lanzar el script:
21. Como se puede observar se indican los pasos seguidos (comandos
ejecutados) en la tabla central, así como el tiempo de ejecución o
estadísticas de los comandos realizados correctamente / incompletos / con
error. También permite ejecutar dos opciones para ver los resultados.
Opción View DOM: Permite visualizar un árbol de la estructura de la página
visualizada.