Está en la página 1de 77

Autentia Real Business Solutions

www.autentia.com

Pruebas sobre aplicaciones


web con SeleniumHQ

Realizada por : Vctor Madrid Trivio


Consultor Tecnolgico

v1.0
Esta obra est licenciada bajo licencia
Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 11
ndice General
www.autentia.com

Introduccin Conclusiones
Terminologa Ruegos y preguntas
Paquete SeleniumHQ
Selenium IDE
Selenium Core
Selenium RC
Integracin con JUnit.
Integracin Maven 2 /
Cargo / Tomcat.
Selenium Grid

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 12
SeleniumHQ
www.autentia.com

Introduccin

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 13
Introduccin
www.autentia.com

Empresa:
Incremento en las exigencias de calidad.
Exigencias del Mercado.
Mercado exige: Cosas mejores.
Productos software:
Incremento en la complejidad.
Incremento del tamao.
Mantenible.
Principales necesidades en cuanto al SW:
Reduccin en los costes.
Reduccin en el tiempo.
Ver su total funcionamiento.

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 14
Introduccin
www.autentia.com

Grfica Tecnologa / Desarrollo / Tiempo

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 15
SeleniumHQ
www.autentia.com

Terminologa

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 16
Terminologa
www.autentia.com

Caso de prueba (Test Case)


Def: Conjunto de condiciones o variables que verifican un requerimiento
especfico.
Hay al menos un caso de prueba por cada requisito.
Algunas metodologas (Test Case :Positivo / Negativo)
Ejemplo : Probar la autenticacin con un sistema.
Datos Entrada + Cond.Ejecucin = Resultado Esperado ( y Verificacin).
Clasificacin de casos de prueba escritos :
Script de prueba.
Suite de prueba.
Procedimiento de prueba
Def: Mtodo a seguir para realizar la prueba.
Instrucciones detalladas para : Config. , Ejecucin y Evaluacin.
Aplicable a 1 o + casos de prueba.
Esta obra est licenciada bajo licencia
Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 17
Terminologa
www.autentia.com

Prueba de software
Def: Ejecucin de un programa con la intencin de descubrir
un error.
Tcnica experimental para la bsqueda de errores en los
programas (Arte / > 50% Esfuerzo / Experiencia).
Verifica la calidad de un producto SW.
Objetivos:
Probar si el SW no hace lo que debe hacer.
Probar si el SW hace lo que no debe hacer Daos Colaterales
Prueba de un sistema

Se define como el proceso de ejercitar o evaluar el sistema, por medios manuales o automticos, para verificar
que satisface los requerimientos o, para identificar diferencias entre los resultados esperados y los que produce
el sistema (IEEE)

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 18
Terminologa
www.autentia.com

Principios de las pruebas:


1)Una prueba es un proceso que trata de localizar errores.
2)Es imposible probar completamente un sistema.
3)Una prueba implica ser creativo.
4)Una prueba permite prevenir posibles errores.
5)Las pruebas deberan de ser realizadas por personas diferentes a
aquellas que desarrollaron el sistema.

Tcnicas para realizar pruebas:


Utilizar datos de entrada bien definidos. (Ejemplo: 3 + 2 =5 )
Utilizar datos de prueba simples pruebas complejas.
Cuando se detecte un problema y se realicen las modificaciones
oportunas , hay que realizar un slo cambio en las pruebas cada vez
que se utilice.
Verificar la deteccin de datos de entrada incorrectos.
Esta obra est licenciada bajo licencia
Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 19
Terminologa
www.autentia.com

Cuanto antes se detecte un error, menor es el coste para solucionarlo

Etapas de las pruebas


Seleccionar qu es lo que se va a probar.
Determinar cmo se va a probar.
Desarrollar los casos de prueba.
Determinar cuales deberan de ser los resultados esperados.
Ejecutar los casos de prueba.
Comparar los resultados de la prueba con los resultados esperados.

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 10
Terminologa
www.autentia.com

Automatizacin
Def: Proceso de conversin de tareas realizadas
manualmente a tareas realizadas de manera automtica.
Surge como complemento al proceso de pruebas.
Implica el uso de SW para:
Controlar la ejecucin de las pruebas.
Comparar los resultados.
Creacin de un entorno de pruebas.
Otras funciones de control y anlisis de las pruebas.
Hay que recordar que se trata de automatizar la prueba manual.

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 11
Terminologa
www.autentia.com

Diferencias entre prueba manual y prueba automatizada:

Prueba manual:
Adaptabilidad a cambios.
Hace frente a la complejidad.
Deteccin de errores de un vistazo.
Introduce variantes tiles para descubrir bug.
Sirve de exploracin previa para para definir los casos a automatizar

Prueba automatizada:
Se limita a la evaluacin o verificacin que se define explcitamente el
script Reproduccin.
Complementa al proceso de prueba manual.
No sustituye al proceso de prueba.

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 12
Terminologa
www.autentia.com

El proceso de automatizacin de pruebas debe verse como un


proyecto independiente.

Deben de asignarse:
Tiempo
Recursos
Personal (Especializado)

Requiere :
Planificacin
Diseo
Desarrollo
Prueba

Control de versiones:
Scripts de prueba
Documentacin
Aplicacin
Esta obra est licenciada bajo licencia
Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 13
Terminologa
www.autentia.com

Pruebas de regresin
Def: Aquella prueba que trata de verificar que no ocurri una regresin de la
calidad del producto despus del cambio realizado.
Ejecutar alguna o todas las pruebas realizadas anteriormente.
Asegura que la incorporacin de nuevo cdigo no ha anulado los efectos
anteriores.
Se suelen realizar :
Durante el desarrollo del SW
Tareas de mantenimiento (correcciones / mejoras / adaptaciones)

Tipo de Regresin
Problemas antiguos
Problemas resueltos
Efectos colaterales

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 14
Terminologa
www.autentia.com

Herramientas de grabacin
Def:Aquellas herramientas que permiten generar scripts
a partir de la grabacin de las acciones que realiza el
usuario.
Permiten la parametrizacin.
Utilizacin de datos dinmicos

Generacin del esqueleto del script.

Asistencia en la identificacin de objetos (Muy importante)


Firebug.
XPath.

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 15
Terminologa
www.autentia.com

Desarrollo de un script

Script bien estructurado Cambios en la aplicacin


Mantenible y flexible. Posicin
Partes diferenciadas: Solucin: Usar ID
Datos de prueba Identificador (G. Automtica)
Datos del script Solucin:
Flujo de acciones Parametrizar.
Buenas prcticas de Otro atributos :
programacin. Por ejemplo: alt=
Definir y utilizar cdigo
comprensible.

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 16
SeleniumHQ
www.autentia.com

Paquete SeleniumHQ

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 17
SeleniumHQ
www.autentia.com

Conjunto de herramientas para


automatizar las pruebas sobre
aplicaciones web a travs de
diferentes plataformas.
Funciona en diferentes
navegadores y con
diferentes sistemas
operativos.
Puede ser controlado por
muchos lenguajes de
programacin y frameworks
de prueba.
Permite crear pruebas de
regresin.
Proyecto Open Source
(Comunidad OpenQA)
Esta obra est licenciada bajo licencia
Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 18
SeleniumHQ
www.autentia.com

Esta compuesto por


Selenium Core
Ejecucin de pruebas automatizadas
Selenium IDE
Creacin y mantenimiento de pruebas automatizadas.
Selenium Remote Control (RC)
Creacin de pruebas escritas en lenguajes de programacin como Java o C#.
Selenium GRID
Ejecucin de pruebas escritas en los anteriores lenguajes de forma paralela.
Selenium on Rails
Realizacin de pruebas sobre aplicaciones Rails con Selenium Core.
Selenium on Ruby
Proporciona el hub para relacionar Ruby con los proyectos Selenium
CubicTest
Plugin grfico para Eclipse que permite escribir los test de Selenium

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 19
SeleniumHQ
www.autentia.com

Selenium IDE

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 20
Selenium IDE
www.autentia.com

Selenium IDE
Es un plugin de Firefox.
Pertenece al juego de herramientas SeleniumHQ.
Primera herramienta que hay que aprender a utilizar.
Funcionalidad:
Creacin y mantenimiento de pruebas web automatizadas.
Reproduccin del script generado en el navegador Firefox.
Tiene integrado Selenium Core.
Es una completa herramienta de desarrollo de pruebas web.
Grabacin de las acciones realizadas por un usuario.

No es solamente una herramienta de grabacin.

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 21
Selenium IDE
www.autentia.com

Caractersticas:
Facilidad de grabacin y ejecucin de los test.
Referencias a objetos DOM en base al ID, nombre o a travs de XPath.
Autocompletado de comandos.
Herramienta de depuracin y puntos de ruptura (breakpoints)
Las acciones pueden ser ejecutadas paso a paso.
Los test pueden ser almacenados como HTML u otros formatos.
Soporte para Selenium: user-extension.js

Lenguajes de programacin:
Java / C# / Perl / Php /Python /Ruby

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 22
Selenium IDE
www.autentia.com

Requerimientos : Navegador
Navegador Funcionamiento
Firefox 2 / 3 Graba y reproduce test
IE 7/8b1 | Safari 2/3 | Opera 2/3 | Otros No esta soportado

Requerimientos : Sistema operativo

Sistema Operativo Funcionamiento


Windows | OS X | Linux | Solaris Trabaja con Firefox 2 o +
Otros Debera de trabajar con Firefox 2 o +

Requerimientos : Lenguaje de programacin


Lenguaje de programacin Funcionamiento
C# | Java | Perl | Php | Python | Ruby Genera cdigo
Otros Genera cdigo personalizado

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 23
Selenium IDE
www.autentia.com

Instalacin:
1)Conectase a la pgina de descargas de SeleniumHQ
http://www.seleniumhq.org/download/

2)Descargarse Selenium IDE.

3)Instalar Selenium IDE.

4)Reiniciar el Firefox.

Ejecucin:
Opcin Ver Panel lateral Selenium IDE
Opcin Herramientas Selenium IDE (Ventana nueva)

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 24
Selenium IDE
www.autentia.com

Panel de control:
Grabacin (HTML):
Test Case
Test Suite

Opciones configuracin:
Codificacin.
Timeout.
Formato.
Grabar assertTitle
automticamente.
Grabar URL absoluta.

Opciones reproduccin:
Reproducir todos.
Reproducir uno.
Test Runner.
Velocidad.
Grabar / Parar.

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 25
Selenium IDE
www.autentia.com

Tabla
Comando.
Objetivo.
Valor.

Cdigo
Por defecto HTML.

Panel Edicin
Find : localiza elemento.

Panel de informacin:
Log.
Referencia de los comandos.

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 26
Selenium IDE
www.autentia.com

Comandos
Def: Un comando es lo que le dice a Selenium que hacer.
Hay 3 tipos:
Acciones (Actions)
Modifican el estado de la aplicacin.
Por ejemplo : Pulsar un botn / enlace.
Debido a su forma de finalizar pueden ser:
Incorrectas:Si la accin tiene un error o falla en algn momento de su
ejecucin, entonces el test que se esta ejecutando para.
Correctas: Si la accin no presenta errores continua con la ejecucin.

Accesos (Accessors)
Comprueban el estado de la aplicacin y almacenan el resultado en
variables.
Por ejemplo : storeTitle Devuelve el ttulo de la pagina actual.
Esta obra est licenciada bajo licencia
Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 27

Selenium IDE
www.autentia.com

Afirmaciones (Assertions)
Son como los anteriores, con la diferencia de que estos comprueban el
estado de la aplicacin con lo que se esperaba.

Por ejemplo: Comprobar que el ttulo de una pgina es XXXX

Las afirmaciones se pueden clasificar en 3 tipos:


Assert : Cuando hay un fallo se aborta la prueba.
Verify : Cuando hay un fallo continua con la ejecucin log.
WaitFor: Espera a una condicin.

Consejo : Con un nico assert se comprueba que nos encontramos en


la pgina correcta, es resto de comprobaciones deberan de ser del
tipo verify.

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 28
Selenium IDE
www.autentia.com

Localizadores (Idenficadores):
Def: Clave alfanumrica de bsqueda e identificacin de un elemento.
Los elementos que indican a la aplicacin sobre que elemento HTML se refiere un
comando especfico.
Formato : locatorType=argumento
Estrategias de localizacin:

Estrategia Descripcin
identifier=id Selecciona el elemento con el atributo @id (No tiene @name)

id=id Selecciona el elemento con el atributo @id

name=name Selecciona el primer elemento con el atributo @name

dom=javascriptExpression Selecciona el elemento resultado de evaluar la expresin JS

xpath=xpathExpression Selecciona el elemento resultado de evaluar la expresin XPath

link=textPattern Selecciona el elemento indicado en el patrn

css=cssSelectorSyntax Selecciona el elemento usando selectores CSS


Esta obra est licenciada bajo licencia
Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 29
Selenium IDE
www.autentia.com

Ejemplos localizadores:
dom=document.forms['myForm'].myDropdown
xpath=//input[@name='name2' and @value='yes']
css=a[href="#id3"]

user-extensions.js
Caractersticas:
Carga el cdigo Javascript.
Nombre del fichero (Por defecto).
Permite incorporar caractersticas.
Extensin
La distribucin no lo trae disponible. (Depende del Usuario)

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 30
Selenium IDE
www.autentia.com

Plantilla Script de prueba (Cdigo HTML)

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 31
Selenium IDE
www.autentia.com

Plantilla Suite de prueba (Cdigo HTML)


Orden secuencial.
Establecer localizacin Test Case

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 32
Selenium IDE
www.autentia.com

Ejemplos Selenium IDE:

Ejemplo 1 : Grabacin :Acceder a la web de Adictos al


trabajo desde la pgina de Google.
Explicacin breve Firebug.
Explicacin breve XPath.

Ejemplo 2 :Ejecutar Test Suite Acceder a tutorial de


Selenium IDE.
Acceso desde a la web de Adictos al trabajo
Buscar el tutorial Primeros pasos con Selenium IDE.

Ejemplo 3 : Generalizar el ejemplo 1 para acceder a la


primera pgina del buscador de Google.
Esta obra est licenciada bajo licencia
Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 33
Selenium IDE
www.autentia.com

Comparativa de comandos Ejemplo 1 y Ejemplo 3

EJEMPLO 1 EJEMPLO 3

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 34
SeleniumHQ
www.autentia.com

Selenium Core

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 35
Selenium Core
www.autentia.com

Selenium Core
Pertenece al juego de herramientas SeleniumHQ.
Tambin llamado (TestRunner)
Funcionalidad:
Reproducir los test en diferentes navegadores.
No Graba / Ni Edita Test Selenium IDE
Problema de restricciones de seguridad.
Componente de Selenium RC
Ejecucin:
Independiente
Integrado en una aplicacin web Llamada URL

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 36
Selenium Core
www.autentia.com

Caractersticas:
Fcil instalacin.
Interfaz intuitiva.
Facilidad en la ejecucin de los test.
Ejecucin en varios navegadores (Muy importante).
Referencia a objetos DOM.
Ejecucin de scripts en modo paso a paso.

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 37
Selenium Core
www.autentia.com

Requerimientos : Navegador
Navegador Funcionamiento
Firefox 2 / 3 | IE 7 | Safari 2/3 | Opera 2/3 Reproduce test
Otros Reproduce test (*)
IE 8b1 ?

Requerimientos : Sistema operativo


Sistema Operativo Funcionamiento
Windows | OS X | Linux | Solaris Reproduce test
Otros Reproduce test (*)

(*) Selenium Core esta escrito en Javascript y por lo tanto debera de funcionar en aquellos buscadores que soporten Javascript.
Nota: Algunas operaciones solo se pueden realizar mediante Selenium RC debido a las opciones de seguridad de los navegadores.

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 38
Selenium Core
www.autentia.com

Instalacin
Descargar http://seleniumhq.org/download/.
Descomprimir en una carpeta Ej: C:\selenium-coreX.X\
Ejecutar archivo index.html.
Lanzador de Test Suite.
Verificar si el navegador esta soportado.
Pruebas unitarias / Test Case.
Integracin en un proyecto
Copiar la carpeta core (directorio web accesible)
core : Contiene el lanzador de scripts.
Crear la carpeta tests al mismo nivel que core
tests : Contendr los Test Suite y Test Case.
Desplegar aplicacin en servidor de aplicaciones
http://<hostname>:<port>/core/TestRunner.html
Esta obra est licenciada bajo licencia
Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 39
Selenium Core
www.autentia.com

Selenium TestRunner
reas especficas
Test Suite
Carga Test
Ventana independiente
Problema Firefox
Ejecucin automtica

Current Test

Control Panel
Ver DOM
Mostrar Log

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 40
Selenium Core
www.autentia.com

Ejemplos:
Para ello arrancar Apache Tomcat 6 y desplegar Ap. Interna
Ejemplo 1 : Ejecutar Selenium Core en varios navegadores.
Comprobar que podemos ejecutar Selenium Core sobre el proyecto de
uso interno en los navegadores: IE / Firefox y Opera
Ejemplo 2 : Ejecutar Test Suite SeleniumIDE
Ejecutar : ../tests/TestSuite1.html
Ejemplo 3 : Ejecutar Test Suit Proyecto interno
Ejecutar : ../tests/TestSuite2.html

Parar el Tomcat

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 41
Selenium Core
www.autentia.com

Problema de seguridad de Javascript en los


navegadores:
Muchas operaciones (comandos) se consideran ataques
Bloqueados o sin concesin permisos.
Soluciones:
Selenium IDE Extensin Mozilla Firefox.
Selenium RC Servidor proxy.
Selenium Core requiere estar instalado en el servidor donde
se ejecuta la aplicacin. (Ej : Google)
Funciona correctamente en servidores propios.

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 42
Selenium Core
www.autentia.com

Integracin
Recuperacin parmetros GET / POST
Implementacin propia o Selenium RC
Pueden ser :
Parmetros de configuracin de las pruebas (Ej: auto,close ,save, etc.)
Resultados obtenidos: (n test fallidos / pasados, etc.)
Modo ejecucin HTA
Fichero especial .hta (HTML) No seguridad /Si escribir disco
Funciona : Windows y Internet Explorer
Carpeta core.
Modos
Ejecutable
Lnea de comandos Compatible con integracin
Esta obra est licenciada bajo licencia
Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 43
SeleniumHQ
www.autentia.com

Selenium Remote Control


(Selenium RC)

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 44
Selenium RC
www.autentia.com

Selenium Remote Control (RC)


Permite escribir test automatizados de aplicaciones web
Escritos en cualquier lenguaje comunicacin HTTP
Sobre cualquier sitio web (HTTP)
Usando un navegador con Javascript habilitado.
Servidor Selenium
Selenium Core
Poder utilizar un lenguaje de verdad va a permitir:
Test dinmicos.
Gran potencia.
Pertenece al juego de herramientas SeleniumHQ.
Funcionalidad:
Permite ejecutar las pruebas desde mltiples navegadores y desde mltiples
plataformas. Lo ideal.
Script en lenguaje de programacin seleccionado.

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 45
Selenium RC
www.autentia.com

Requerimientos : Navegador
Navegador Funcionamiento
Firefox 2/3 | IE 7 | Safari 2/3 | Opera 2/3 Iniciar navegador y reproducir test
Otros Posible soporte parcial(Seguridad)
IE 8b1 ?

Requerimientos : Sistema operativo


Sistema Operativo Funcionamiento
Windows | OS X | Linux | Solaris Iniciar navegador y reproducir test
Otros Iniciar navegador y reproducir test (*)

Requerimientos : Lenguaje de programacin


Lenguaje de programacin Funcionamiento
C# | Java | Perl | Php | Python | Ruby Soporte librera (Driver)
Otros Comandos via peticin HTTP(**)
(*) El servidor de Selenium Remote Control esta escrito en Java, por lo que puede ejecutarse en otros sistemas y, siempre que haya un navegador disponible.

(**)Cualquier lenguaje puede hacer una llamada HTTP pasando comandos de control remoto al servidor Selenium RC..

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 46
Selenium RC
www.autentia.com

Se compone de 2 partes
Servidor
Contiene Selenium Core
Pone en marcha automticamente, para y controla a los navegadores.
Comunicacin con el navegador : Uso AJAX (XmlHttpRequest)
Proxy HTTP para sus peticiones web.
No necesita correr en la misma mquina virtual (JVM) o en la misma
mquina fsica.
Cliente
Conecta con el servidor
Libreras clientes para los lenguajes de programacin (HTTP).
Se aconseja utilizar un framework de testeo : JUnit o Testng (JAVA).

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 47
Selenium RC
www.autentia.com

Funcionamiento

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 48
Selenium RC
www.autentia.com

Funcionamiento Detallado

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 49
Selenium RC
www.autentia.com

Instalacin:
Descargar http://seleniumhq.org/download/.
Descomprimir en una carpeta Ej: C:\selenium-rc\

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 50
Selenium RC
www.autentia.com

Operaciones en el Servidor Selenium:


Arrancar el servidor:
Abrir la consola y situarse en la la carpeta que hace referencia al
servidor:
C:\selenium-rc\selenium-remote-control-1.0-beta-2\selenium-server-1.0-
beta-2
Modo normal :Ejecutar la siguiente instruccin:
java -jar selenium-server.jar
Modo interactivo :Ejecutar la siguiente instruccin:
java -jar selenium-server.jar -interactive
Parar el servidor:
Abrir el navegador y escribir la siguiente URL (Normal / Interac.):
http://localhost:4444/selenium-server/driver/?cmd=shutDown
Si se ejecuta en modo interactivo:
quit

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 51
Selenium RC
www.autentia.com

Incorporar parmetros al arranque normal:


Uso:
java -jar selenium-server.jar [-interactive] [options]
Ejemplos de opciones:
-port <num> : El puerto que Selenium debera de utilizar (Por defecto 4444)
-timeout <num> : El n de segundos de debera de tener de timeout.

Incorporar parmetros al arranque interactivo:


Se introducen en la lnea de comandos
Ejemplos :
cmd=open&1=http://www.google.com
cmd=getNewBrowserSession&1=*iexplore&2=http://www.google.com

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 52
Selenium RC
www.autentia.com

Navegadores utilizados:
Hay que indicar el tipo de navegador.
Tipos:
Normales : *firefox, *iexplore, *safari y *custom /path/to/browser
Experimentales :
Permiten probar las aplicaciones en cualquier sitio.
Tipos:
Subir los privilegios de seguridad: *iehta y *chrome
Modo inyeccin de proxy: *piiexplore y *piifirefox
Arrancar el navegador: java -jar selenium-server.jar -proxyInjectionMode

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 53
Selenium RC
www.autentia.com

Objeto DefaultSelenium en el Test Case (JAVA)


Permite configurar su ejecucin (Modificar el constructor).
Selenium selenium = new DefaultSelenium( String seleniumServerHost,
int seleniumServerPort,
String browserType,
String baseURL);

Importante: El objeto creado esta vinculado a una URL


concreta y slo se puede utilizar con esa URL.
Cuando se quiera comenzar:
selenium.open(http://www.site.com/page.html);
Cuando se quiera finalizar:
selenium.stop();

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 54
Selenium RC
www.autentia.com

Integracin con JUnit


Descargar JUnit 4.5 de www.junit.org
Descomprimir en una carpeta Ej: C:\JUnit4.5\
Comprobar que el JDK utilizado esta en la variable de entorno PATH.
Incluir en el CLASSPATH las librerias:
selenium-java-client-driver.jar
junit-4.4.jar;
Crear un directorio que contenga las pruebas.
Por ejemplo: C:\selenium-test.
Crear los Test Cases
Crear un Test Suite
Generar un build de esas clases (compilacin)
Generar un ejecutable (para la clase Test Suite)

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 55
Selenium RC
www.autentia.com

Crear los casos de prueba (Test Case)


Ejemplo de plantilla para la generacin de un Test Case
Los test case de una misma test suite deberan de tener la
misma URL Base
Los test case no de pueden ejecutar de forma individual.

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 56
Selenium RC
www.autentia.com

Crear el Test Suite


Ejemplo de plantilla para la generacin de Test Suite

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 57
Selenium RC
www.autentia.com

Ejemplo JUnit
Abrir una consola.
Situarse en : C:\selenium-rc\selenium-remote-control-1.0-beta-2\selenium-server-
1.0-beta-2\
Arrancar Servidor Selenium : java -jar selenium-server.jar -interactive
Situarse en c:\selenium-test\Ejemplo RC JUnit\
Mostrar el cdigo
Ejecutar build
Ejecutar test.
Parar el servidor interactivo

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 58
Selenium RC
www.autentia.com

Ejecutar un Test Suite


Abrir la consola y desde la ubicacin del servidor Selenium
ejecutar la siguiente instruccin:

java -jar selenium-server.jar -htmlsuite <browser> <url> <path to testsuite> <where to store results>

Por ejemplo:
java -jar selenium-server.jar -multiwindow -htmlSuite "*iexplore" "http://www.autentia.com"
"C:\selenium-test\Ejemplo RC Suite\Testsuite.html" "C:\selenium-test\Ejemplo RC Suite\results.html"

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 59
Selenium RC
www.autentia.com

Integracin Selenium / Maven 2 / Cargo / Tomcat


POM : Integrar Selenium con Maven 2
Definimos como propiedades comunes al proyecto

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 60
Selenium RC
www.autentia.com

Integramos el plugin : selenium-maven-plugin

Este plugin permite : Arrancar / Parar / Ejecutar el Servidor RC.


En nuestro caso slo vamos a definir que lo arranque.

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 61
Selenium RC
www.autentia.com

Integramos el plugin : maven-surefire-plugin

Plugin que ejecuta los test unitarios durante la fase de test (Junit >=3.8)
Genera 2 informes en ${basedir}/target/surefire-reports
Problema: Filtramos los test para las pruebas de integracin.
Ocurre para Maven 2.0 Posible solucin en Maven 2.1
Esta obra est licenciada bajo licencia
Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 62
Selenium RC
www.autentia.com

Integrar el repositorio de plugins para los plugins anteriores

Permite bajar las libreras necesarias.

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 63
Selenium RC
www.autentia.com

Incorporar las dependencias:


Selenium-server
Selenium-java-cliente-driver
JUnit

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 64
Selenium RC
www.autentia.com

POM : Integrar Cargo con Maven 2


Integramos el plugin : cargo-maven2-plugin

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 65
Selenium RC
www.autentia.com

Ejecutar ejemplo de proyecto interno :


Arrancar Eclipse : workspaceCurso
Mostrar test
Ejecutar en lnea de comandos
mvn test
mvn integration-test
mvn install

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 66
SeleniumHQ
www.autentia.com

Selenium Grid

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 67
Selenium Grid
www.autentia.com

Selenium Grid
Es una extensin de Selenium Remote Control para distribuir
las pruebas en mltiples plataformas e incluso a la vez.

Puede ejecutar varios Selenium RC (1 o +).

Pertenece al juego de herramientas SeleniumHQ.

Funcionalidad:
Permite ejecutar las pruebas desde mltiples navegadores y desde
mltiples plataformas. Lo ideal.
Ejecucin Paralela.

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 68
Selenium Grid
www.autentia.com

Instalacin
Verificar instalacin de JDK 1.5 (Ejecutar : java -version)
Verificar instalacin de Ant 1.7 (Ejecutar: ant -version)
Descargar Ant 1.7 desde su pgina.
Descomprimir en un directorio del sistema (por ejemplo :C:\ant1.7\)
Modificar las variables de entorno.
Instalar Selenium Grid
Descargar Selenium Grid desde su pgina
http://selenium-grid.seleniumhq.org/download.html
Descomprimir en un directorio del sistema
(por ejemplo : C:\selenium-grid\)
Verificar instalacin de Selenium Grid
Abrir la consola ,situarse en la carpeta de instalacin y ejecutar :
ant sanity-check

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 69
Selenium Grid
www.autentia.com

Funcionamiento:
[Recordar] : Selenium RC usa un lenguaje de programacin para manejar
al navegador.
Enva peticiones HTTP (protocolo especfico Selenese).
Funcionamiento de Selenium RC:
Bueno Pocos casos de prueba
Malo Muchos casos de prueba (Test Suite Compleja)
Inconvenientes:
Selenium RC es muy lento manejando el navegador.
Puede ser el cuello de botella de tus pruebas
La ejecucin paralela de test en el mismo RC esta limitada
N mximo : 6 navegadores/RC.
Incremento de la inestabilidad : Internet Explorer
Los test pueden utilizar mltiples RC pero teniendo en cuenta la limitacin.

Importante: No usar Test Suite cuyos tiempos sean >30'


Esta obra est licenciada bajo licencia
Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 70
Selenium Grid
www.autentia.com

Los test Selenium, la aplicacin donde se ejecuta y la asociacin navegador /


control remoto no tienen que localizarse HTTP.
Los test Selenium y su aplicacin web asociados a un proyecto
concreto.
Ni el Control Remoto ni el navegador esta asociados a una aplicacin
concreta.

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 71
Selenium Grid
www.autentia.com

Selenium Hub.
Es un componente de Selenium Grid.
Interfaz externa Mando a distancia tradicional.
No hay cambios en el cdigo.
Protege a los test de la infraestructura (HUB o RC)
Facilita la vida del desarrollador.
En cada prueba se asignan Controladores Selenium.
Encamina las peticiones Selenesse desde la prueba al controlador.
Aprovechar ejecuciones paralelas: JUnit o Testng.
Ejecutar Hub
ant launch-hub
Acceder a la consola Hub
http://localhost:4444/console

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 72
Selenium Grid
www.autentia.com

Selenium Grid y las Pruebas de Carga


Selenium Grid no esta diseado para realizar pruebas de carga y
rendimiento.
Esta diseado para realizar pruebas funcionales o de aceptacin.
Motivo: Resulta muy costoso realizar la carga con un navegador real.
Esta carga se producira a escala
Y la carga real es muy incosistente.
Para realizar pruebas de carga se aconseja utilizar otras herramientas:
JMeter.
Grinder.
Browser Mob.

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 73
SeleniumHQ
www.autentia.com

Conclusiones

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 74
Conclusiones
www.autentia.com

SeleniunHQ es gratuito.
Abarca todo tipo de
necesidades de ejecucin
de pruebas.
Permite usarse en
diferentes navegadores y
plataformas,
Ejecucin ligeramente
paralela.
Inclusin como parte de
un proyecto.
Integracin con Maven.
Esta obra est licenciada bajo licencia
Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 75
SeleniumHQ
www.autentia.com

Ruegos y preguntas

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 76
Nota
www.autentia.com

Las imgenes referentes a las aplicaciones


utilizadas han sido tomadas de la siguiente URL:
http://seleniumhq.org/
El resto de imgenes son libres.

Esta obra est licenciada bajo licencia


Creative Commons de Reconocimiento-No comercial-Sin obras derivadas 2.5. 1 77

También podría gustarte