Documentos de Académico
Documentos de Profesional
Documentos de Cultura
seleniumHQ PDF
seleniumHQ PDF
www.autentia.com
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
Introduccin
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.
Terminologa
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)
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.
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.
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
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
Desarrollo de un script
Paquete SeleniumHQ
Selenium IDE
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.
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
Requerimientos : Navegador
Navegador Funcionamiento
Firefox 2 / 3 Graba y reproduce test
IE 7/8b1 | Safari 2/3 | Opera 2/3 | Otros No esta soportado
Instalacin:
1)Conectase a la pgina de descargas de SeleniumHQ
http://www.seleniumhq.org/download/
4)Reiniciar el Firefox.
Ejecucin:
Opcin Ver Panel lateral Selenium IDE
Opcin Herramientas Selenium IDE (Ventana nueva)
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.
Tabla
Comando.
Objetivo.
Valor.
Cdigo
Por defecto HTML.
Panel Edicin
Find : localiza elemento.
Panel de informacin:
Log.
Referencia de los comandos.
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.
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)
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)
EJEMPLO 1 EJEMPLO 3
Selenium Core
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
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.
Requerimientos : Navegador
Navegador Funcionamiento
Firefox 2 / 3 | IE 7 | Safari 2/3 | Opera 2/3 Reproduce test
Otros Reproduce test (*)
IE 8b1 ?
(*) 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.
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
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
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
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 ?
(**)Cualquier lenguaje puede hacer una llamada HTTP pasando comandos de control remoto al servidor Selenium RC..
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).
Funcionamiento
Funcionamiento Detallado
Instalacin:
Descargar http://seleniumhq.org/download/.
Descomprimir en una carpeta Ej: C:\selenium-rc\
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
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
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"
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
Selenium Grid
Selenium Grid
Es una extensin de Selenium Remote Control para distribuir
las pruebas en mltiples plataformas e incluso a la vez.
Funcionalidad:
Permite ejecutar las pruebas desde mltiples navegadores y desde
mltiples plataformas. Lo ideal.
Ejecucin Paralela.
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
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.
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
Conclusiones
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