tu to selenium

11
1. INTR ODUCCIÓN Selenium es un entorno de pruebas de software para aplicaciones basadas en la web. Selenium provee una herramienta de Realizado Por: Rodríguez García Julio Cesar De La Cruz Díaz Francisco Tutorial Selenium Verificación y Validación de FACULTAD DE INGENIERÍA UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO

Upload: pakito13948

Post on 23-Nov-2015

113 views

Category:

Documents


7 download

TRANSCRIPT

Realizado Por:Rodrguez Garca Julio CesarDe La Cruz Daz Francisco JavierMedina Olgun Emmanuel

Tutorial Selenium

Verificacin y Validacin de Software

FACULTAD DE INGENIERA

UNIVERSIDAD NACIONAL AUTNOMA DE MXICO

1. INTRODUCCIN

Seleniumes 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 tambin un lenguaje especfico de dominiopara pruebas (Selanese) para escribir pruebas en un amplio nmero de lenguajes de programacin populares incluyendoJava,C#,Ruby,Groovy,Perl,PhpyPython. Las pruebas pueden ejecutarse entonces usando la mayora de losnavegadores webmodernos en diferentes sistemas operativos comoWindows,LinuxyOSX.

HistoriaSelenium fue originalmente desarrollado por Jason Huggins en 2004 y pronto se unieron al esfuerzo otras personas especialistas en pruebas y programacin. Es un software decdigo abiertobajo lalicencia apache2.0 que puede ser descargada y usada sin cargo. El nombre proviene de una broma hecha por Huggins burlndose 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. Existen otros proyectos que se desarrollan alrededor de Selenium como Selenium Grid, para probar concurrencia de mltiples pruebas concurrentes de clientes remotos o locales, as como Flash Selenium para probar programas escritos enAdobe Flexo SeleniumSilverlightSelenium IDESelenium IDE es unentorno de desarrollo integradopara pruebas con Selenium. Est implementado como una extensin deFirefoxy permite grabar, editar ydepurarpruebas. Originalmente se le conoci como Selenium Recorder. Se pueden desarrollar automticamentescriptsque se pueden editar manualmente con autocompletado de las sentencias, moviendo rpidamente comandos. Los scripts se generan enSelanese, un lenguaje de scripting especial para Selenium. Selanese provee comandos que ejecutan acciones sobre objetos en el navegador, como hacer click en unenlace, seleccionar de una lista de opciones, verificar la presencia de un texto en particular as como para tomar la totalidad de la pgina producto de las acciones.Caractersticas: Grabacin y reproduccin fcil Seleccin inteligente de campos usando ID, nombre oXPathsegn se necesite. Autocompletado de los comandos de Selenium ms comunes. Pruebas de revisin cruzada Depuracin y puntos de verificacacin (breakpoint) Almacenar las pruebas como Selanese, Ruby, Java y otros formatos. Soporte al archivo user-extensions.js Opcin paraasertarel ttulo de la pgina.

Selenium Client APIInterfaz de programacin de aplicaciones (API) de clientes Como alternativa a escribir pruebas en Selanese, las pruebas pueden escribirse en varios lenguajes de programacin, stos se comunican con Selenium mediante llamadas a los mtodos de Selenium Client API. Actualmente Selenium provee API para Java, C#, Ruby y Python. Con Selenium 2 se present una nueva API de clientes, conWebDrivercomo componente central, aunque la anterior API puede seguirse usando llamando a la claseSelenium.Selenium Remote ControlEs un servidor escrito en Java que acepta comandos al navegador vaHTTP. RC hace posible escribir pruebas automatizadas para aplicaciones web, en cualquier lenguaje de programacin lo que permite una mejor integracin de Selenium a entornos de prueba existentes. Para hacer la escritura de pruebas ms fcil, Selenium actualmente proveecontroladores de dispositivospara PHP, Python, Ruby,.NET, Perl y Java. El controlador de Java puede usarse para Javascript va el motorRhino.Selenium Remote Controlfue unarefactorizacindeDriven SeleniumoSelenium B, la versin original lanzaba directamente un proceso para el navegador en cuestin desde el lenguaje de prueba; el protocolo de cable (confusamente llamado Selanese tambin en aquel tiempo) fue reimplementado al portarse a cada lenguaje. Despus de la refactorizacin, hubo un proceso intermediariodemonioentre el script controlador y el navegador. Los beneficios incluyeron la capacidad de controlar navegadores remotos y reducir la necesidad de portar el cdigo a un nmero creciente de lenguajes. Con la liberacin de Selenium 2, Selenium RC fue oficialmente descartado en favor de Selenium WebDriver.

Selenium WebDriverSelenium WebDriver es el sucesor de Selenium RC. Selenium WebDriver acepta comandos (enviados en Selenese o va el API de cliente) y los enva a un navegador. Esto se implementa a travs de un controlador del navegador especfico para cada navegador que enva los comandos y trae los resultados de regreso. La mayora de los controladores de navegador lanzan y acceden a la aplicacin de navegador (como Mozilla Firefox o Internet Explorer), pero tambin hay un controlador paraHtmlUnitque 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 ms abajo). Desde inicios de 2012, Simon Stewart de Google (inventor del WebDriver) y David Burns de la Fundacin Mozilla se encuentran negociando con elW3Cque WebDriver se convierta en un estndar de Internet, como tal Selenium-Webdriver (Selenium 2.0) apunta a ser la implementacin de referencia del estndar WebDriver en varios lenguajes de programacin. A la fecha (marzo de 2013) Selenium-WebDriver est completamente implementado y soportado en Java, Ruby, Python y C#. En la prctica, 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 construccin bsicos con los cuales los desarrolladores puedan programar su propiolenguaje especfico de dominio. Uno de ellos ya existe y es el proyectoWatiren Ruby que tiene una historia rica en buen diseo. Watir-WebDriver implementa el API de Watir como un envolvente del Selenium-Webdriver en Ruby. Watir-WebDriver se crea de forma completamente automtica, basado en las especificaciones del WebDriver y HTML.

Selenium GridSelenium Grides un servidor que permite usar instancias de navegador ejecutndose en mquinas remotas. Con Selenium Grid, uno de los servidores acta 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 mltiples mquinas y manejar diferentes versiones y configuraciones de manera centralizada.

2. INSTALACIN E INTERFAZ

2.1INSTALACIN

Accedemos a la web: http://seleniumhq.org/download/ y descargamos la versin ms reciente de Selenium IDE: "Download version 2.5.0 " desde mozilla firefox(Se trata de un plugin para dicho explorador).

2.2LA APLICACIN Y SUS CARACTERSTICAS

Selenium-IDE es un plug-in de firefox empleado para generar automatizaciones de casos de pruebas.

Podemos abrir la aplicacin desde mozilla firefox en "Herramientas" => "Selenium IDE"

2.2.1.1Barra principal

Archivo:Nos permite abrir, exportar y guardar casos de prueba.

Editar:Recoge todas las opciones de edicin, aparte de insercin de acciones a realizar y comentarios.

Actions:Recopilacindetodaslas herramientas propias de la aplicacin.

Options:Nospermitever/modificarla configuracin dela aplicaciny los formatos/Lenguaje empleado en el cdigo de la misma.

Ayuda:Referencia a UI_Elements.

2.2.1.2URL de inicio

Nos permite especificar el link predeterminado de inicio de nuestras pruebas.

Por ejemplo:

Poniendo de URL base "http://seleniumhq.org", si accedemos al apartado download "http://seleniumhq.org/download/", lo nico que aparecer en la lnea de comando ser "download" debido a que entiende que el resto del link es el URL principal.

2.2.1.3Barra de herramientas

Control de velocidad:Permite modificar la velocidad con la que se reproducen los casos de pruebas(Necesario para verificar que las accionesrealizadas son las correctas).

Botones de ejecucin: Permiten la ejecucin y parada del listado de test case.

Step: Ejecuta una sola lnea de comando.

Grabacin: Comienza la grabacin de los diversos pasos que vayamos realizando en mozilla firefox, creando una lnea de comandos por cada paso ejecutado.

2.2.1.4Casos de prueba

Cada vez que grabemos alguna accin de una pgina web se generan lneas de comando que constan de 3 atributos.

Command: Son las acciones realizadas en cada paso(Al pinchar en dicha columna se nos despliega un listado con todos los comandos reconocidos.

Target: Link o direccin desde la cual se realiza la accin.

Value:Parmetro empleado en el comando.

2.2.1.5Cdigo fuente

Muestra el cdigo generado por los casos grabados, en formato HTML.

2.2.1.6Log

Muestra el estado de cada una de las acciones realizadas

3. GRABACIN Y EJECUCIN DE TEST CASE

3.1CREACIN DE CASOS DE PRUEBA

Cada vez que abramos Selenium IDE, por defecto, se activar el modo de grabacin. Si no est activo, pulsar el botn de grabacin serSuficiente para activarlo/desactivarlo.

Las acciones ms comunes generadas cuando se graba un caso de prueba son las siguientes:

Open: accede a un link especificado, siendo "/" el "base URL"

Click/ClickAndWait: activa/desactiva un botn o checkbox.

Type/TypeAndWait:escribe un valor "x" en el objeto seleccionado.

3.1.1.1Adicin de acciones de contrl y variables.

Pulsando el botn derecho en cualquier parte de la ventana abierta por firefox podemos realizar diversas acciones de control o creacin de variables.

Podemos organizar los comandos mostrados en 4: asssert, verify, waitfor y store.

Assert y Verify realizan la misma funcin, es decir, comprobar que se de una condicin concreta. La principal diferencia radica en que con Assert en caso de que falle corta la ejecucin, mientras que con Verify, que aunque de error, continua la ejecucin hasta llegar al final.

WaitFor para la ejecucin hasta que se da una condicin concreta.

Store Permite almacenar los datos recopilados en variables que pueden ser utilizados ms adelante con ${nomVar}.

3.2EJECUCIN CASOS DE PRUEBA

Una vez guardado un test case podemos ejecutarlo de forma automtica.

Podemos ejecutar todos los casos de prueba(A) o solo el caso de prueba seleccionado(B)

Cada vez que finalizamos una ejecucin, nos muestra el resultado de pasos correctos y fallados. En este caso tenemos un error por haber escrito de forma incorrecta "Selenium".

Al volver a realizar la ejecucin con el nombre correctamente en el paso de verificacin, queda resuelta la incidencia.

ANEXOS

4.1LISTADO DE ENLACES DE REFERENCIA.

Manual de incio de Selenium IDE(Ingles): http://seleniumhq.org/docs/02_selenium_ide.html

Tutorial bsico Selenium IDE(Espaol): http://www.jourmoly.com.ar/automatizando-pruebas-selenium-ide/

Uso de variables en Selenium IDE(Ingles): http://webigniter.wordpress.com/2011/04/07/storing-variables-in-selenium-ide/

Plugin para mostrar Variables:https://addons.mozilla.org/en-US/firefox/addon/stored-variables-viewer-seleni/? src=search

Referencia de comandos(Ingles): http://release.seleniumhq.org/selenium-core/0.8.0/reference.html

Referencia de UI-Elements(Ingles): http://ttwhy.org/code/ui-doc.html