capybara

13
PROBANDO WEBS: CAPYBARA

Upload: openfinancedev

Post on 11-Nov-2014

1.070 views

Category:

Technology


5 download

DESCRIPTION

Capybara permite hacer test al estilo BDD sobre web. Proporciona una api a cucumber para interactuar con una web.Comparativa de los diferentes drivers de navegador.

TRANSCRIPT

Page 1: Capybara

PROBANDO WEBS:

CAPYBARA

Page 2: Capybara

INTRODUCCIÓN

Queremos hacer pruebas automáticas sobre una aplicación web .

Vamos a utilizar cucumber (ruby) y sus features (BDD)

¿Qué se necesita? Aplicación web a testear Historias de usuario: cucumber Vocabulario especifico para web: Capybara Drivers de comunicación web (Selenium,

Celerity, Culerity)

Page 3: Capybara

CAPYBARA

Es una solución plug-and-play para la integración de tests.

Se instala como una gema

La estructura del proyecto de Capybara

Permite el uso de Xpath (XML Path Language)

Page 4: Capybara

CAPYBARA - EJEMPLO Ejecutamos una aplicación web que busca en Google

la palabra Openfinance y comprueba que la web oficial de la empresa aparece en la primera posición.

DEMO

Page 5: Capybara

ESTRUCUTRA DE UN PROYECTO search.features definición

los features y los escenarios search_steps.rb definción

los steps pages/ .rb páginas de

definiciones capybara.rb definiciones

de Capybara env.rb configuracion/

inicialización de Cucumber y Capybara

cucumber.yml archivo para ejecutar el proyecto (comando por defecto)

Page 6: Capybara

CAPYBARA

Es independiente del driver que corre los test

Rack-test: el más rapido, pero sin javascript

Culerity / Celerity: navegador sin la parte gráfica

Selenium: ejecuta en el navegador, ajax, lento

Page 7: Capybara

RACK TEST

• Simulador por defecto para correr los escenarios contra la aplicación.

• Ventajas:• Es el más rápido

• Inconvenientes:• No soporta Javascript

Page 8: Capybara

CELERITY - HTMLUNIT

Celerity es un driver que utiliza HtmlUnit es un navegador sin la parte gráfica; carga el HTML, ejecuta el javascript, simula clicks, manda nuevas peticiones pero no abre una ventana para mostrar los resultados.

• Ventajas• Soporta javascript

• Inconvenientes• Esta implementado en Java por lo tanto hay que utilizar

Jruby.• Lento

Page 9: Capybara

SELENIUM

Selenium es una herramienta de testeo de aceptación web que corre en el navegador. Al ejecutarse en el navegador, hace exactamente lo que el usuario hace.

• Ventajas• Soporta pruebas de aceptación de aplicaciones web 2.0 y

pruebas de funcionalidad.• Implementado con tecnologías de navegación: JavaScript,

DHTML y Frames• Soporta Javascript y CSS

• Inconvenientes• Muy lento• No debe utilizarse cuando se estan testeando

características muy pequeñas (test unitarios) porque el coste es alto.

Page 10: Capybara

ENVJS

Entorno que simula un navegador. Esta escrito en javascript.

- Implementacion: Rhino (java), SpiderMonkey (ruby)

- $ java -jar build/js.jar - Rhino 1.6 release 6 2007 06 28 - js> load('build/runtest/env.js'); funciones motor- js> window.location = 'test/index.html'; test/index.html - js> load('dist/jquery.js');

- js> $('span') [ ]- js> $('div').append('<span><b>hello!</b> world</span>');

[ <div#main>, <div#foo> ] - js> $('span') [ <span>, <span> ] - js> $('span').text() hello! worldhello! world

Page 11: Capybara

CONFIGURACIÓN DEL DRIVER

Para indicarle a Capybara el driver que queremos utilizar tenemos las etiquetas @culerity, @selenium, @rack_test encima del escenario.

@javascript (para el simulador de Javascript por defecto de Capybara).

También se puede configurar en el archivo

Page 12: Capybara

COMPARATIVA VELOCIDADES

Page 13: Capybara

COMPARATIVA CARACTERÍSTICAS