Capybara es un software de automatización de pruebas basado en la web que simula escenarios para historias de usuarios y automatiza las pruebas de aplicaciones web para el desarrollo de software basado en el comportamiento . Está escrito en el lenguaje de programación Ruby .
Desarrollador (es) | Thomas Walpole |
---|---|
Lanzamiento estable | 3.34.0 / 26 de noviembre de 2020 [1] |
Repositorio | |
Escrito en | Rubí |
Sistema operativo | Multiplataforma |
Tipo | Marco de desarrollo impulsado por el comportamiento / herramienta de prueba |
Licencia | Licencia MIT |
Sitio web | teamcapybara |
Capybara puede imitar acciones de usuarios reales que interactúan con aplicaciones basadas en web. Puede recibir páginas, analizar HTML y enviar formularios . [2]
Antecedentes y motivación
Durante el proceso de desarrollo de software (especialmente en los entornos de desarrollo ágil y basado en pruebas ), a medida que aumenta el tamaño de las pruebas, se vuelve difícil administrar las pruebas que son complejas y no modulares. [2]
Al extender el estilo de desarrollo impulsado por el comportamiento de lectura humana de marcos como Cucumber y RSpec en el código de automatización en sí, Capybara tiene como objetivo desarrollar pruebas automatizadas simples basadas en la web. [3]
Anatomía del capibara
Capybara es una biblioteca Ruby (también conocida como gema ) que se usa con un controlador subyacente basado en web. Consiste en un DSL (lenguaje específico de dominio) fácil de usar que describe las acciones que ejecuta el controlador web subyacente. [4]
Cuando la página se carga usando el DSL (y el controlador web subyacente), Capybara intentará ubicar el elemento relevante en el DOM (Modelo de objeto de documento) y ejecutará una acción como hacer clic en un botón, enlace, etc.
Conductores
Por defecto, Capybara usa el :rack_test
controlador que no tiene soporte para ejecutar JavaScript . Los controladores se pueden cambiar en bloques Antes y Después. Algunos de los controladores web compatibles con Capybara se mencionan a continuación.
RackTest
Escrito en Ruby, el controlador predeterminado de Capybara, RackTest, no requiere que se inicie un servidor, ya que interactúa directamente con las interfaces de Rack . En consecuencia, solo se puede utilizar para aplicaciones en rack.
Selenio
Selenium -webdriver, que se utiliza principalmente en marcos de automatización basados en web, es compatible con Capybara. A diferencia del controlador predeterminado de Capybara, es compatible con JavaScript, puede acceder a recursos HTTP fuera de la aplicación y también se puede configurar para realizar pruebas en modo sin cabeza, lo que es especialmente útil para escenarios de CI. [4]
Carpincho-webkit
El controlador Capybara-webkit (una gema) se utiliza para verdaderas pruebas de navegador sin cabeza con soporte JavaScript. Utiliza QtWebKit y es significativamente más rápido que Selenium, ya que no carga todo el navegador.
Matchers
Capybara localiza un elemento usando un lenguaje específico de dominio o selectores XPath / CSS . Las coincidencias parciales pueden dar lugar a resultados inesperados. Dos o más coincidencias pueden incluso resultar en una falla con un error de coincidencia ambiguo. Las siguientes son las estrategias de emparejamiento apoyadas por Capybara: [4]
primero: elija el primer elemento que coincida. No recomendable de usar.
uno: Permitir que solo coincida un elemento. Error generado si más de una coincidencia.
inteligente: Si Capybara.exact es verdadero, se comporta como la opción anterior ( una ). Si Capybara.exact es falso, primero intentará encontrar una coincidencia exacta. Se genera una excepción ambigua si se encuentra más de una coincidencia. Si no se encuentra ningún elemento, se inicia una nueva búsqueda de coincidencias inexactas. Nuevamente, se genera una excepción ambigua si se encuentra más de una coincidencia.
prefer_exact: busca todos los elementos coincidentes (exactos y no exactos). Si se encuentran varias coincidencias, se devuelve el primer elemento que coincida exactamente descartando otras coincidencias.
Uso
Proceso de registro de usuario
A continuación se muestra un ejemplo de cómo se realiza la prueba de registro de usuario utilizando Capybara. Hay una prueba para ver si el usuario puede continuar con el proceso de registro o si hay algún bloqueo sobre él. Si tiene las credenciales requeridas, será registrado y luego redirigido a la página de 'Bienvenida'.
< ref > {{ Citar web | title = Prueba de integración Devise con RSpec y Capybara | url = http : // garyrafferty . com / 2011 / 09 / 29 de / Testing - legado - con - rspec - y - capibara . html | sitio web = garyrafferty . com | fecha - acceso = 2016 - 02 - 16 | archivo - url = https : // web . archivo . org / web / 20160121204404 / http : // garyrafferty . com / 2011 / 09 / 29 de / Testing - legado - con - rspec - y - capibara . html | archivo - fecha = 2016 - 01 - 21 | url - status = dead }} < / ref> describe 'UserRegistration' hazlo 'permite que un usuario se registre' visita new_user_registration_path fill_in 'First name',: with => 'New' fill_in 'Last name',: with => 'Usuario' fill_in 'Email ' ,: with => '[email protected]' fill_in 'Password ' ,: with => 'userpassword' fill_in 'Password Confirmation',: with => 'userpassword' click_button en la página 'Registrarse' . should have_content 'Bienvenido' end end
Carpincho con Pepino
Un ejemplo de una característica de Carpincho utilizada con Cucumber:
Cuando / ^ Quiero añadir / hacer fill_in 'a' , : con => 100 fill_in 'b' , : con => 100 click_button 'Añadir' final
Carpincho con RSpec
Se requiere una integración mínima para usar Capybara con RSpec [4] [5]
describen 'ir a la página principal' hacer que 'abre la página principal de' hacer la visita ( get_homepage ) esperar ( página ) . to have_content ( 'Bienvenido' ) end end
Herramientas similares
- Watir
- Selenio (software)
Extensiones
- Ayudantes de prueba de carpincho
Ver también
- Test de aceptación
- Desarrollo impulsado por pruebas de aceptación
- Desarrollo impulsado por el comportamiento
- Automatización de pruebas
- HtmlUnit
- Lista de herramientas de prueba web
- Pruebas de regresión
- Dado-cuando-entonces
Referencias
- ^ "Lanzamientos - teamcapybara / carpincho" . Consultado el 19 de enero de 2021 , a través de GitHub .
- ^ a b Software de ingeniería como servicio: un enfoque ágil que utiliza la computación en la nube . ISBN 9780984881246.
- ^ Pruebas de aplicación con carpincho . ISBN 9781783281268.
- ^ a b c d "Los conceptos básicos del capibara y la mejora de sus pruebas" . SitePoint . Consultado el 8 de febrero de 2016 .
- ^ Liss, Jo. "Carpincho (y selenio) con RSpec & Rails 3: tutorial rápido" . www.opinionatedprogrammer.com . Consultado el 8 de febrero de 2016 .