capybara
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
PROBANDO WEBS:
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)
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)
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
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)
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
RACK TEST
• Simulador por defecto para correr los escenarios contra la aplicación.
• Ventajas:• Es el más rápido
• Inconvenientes:• No soporta Javascript
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
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.
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
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
COMPARATIVA VELOCIDADES
COMPARATIVA CARACTERÍSTICAS