Capybara es un software de automatización de pruebas basado en la web que simula escenarios para historias de usuario 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 .
Capybara puede imitar las acciones de usuarios reales que interactúan con aplicaciones web. Puede recibir páginas, analizar el HTML y enviar formularios . [ 2 ]
Antecedentes y motivación
Durante el proceso de desarrollo de software (especialmente en los entornos de desarrollo ágil y guiado por pruebas ), a medida que aumenta el tamaño de las pruebas, se vuelve difícil gestionar pruebas que son complejas y no modulares. [ 2 ]
Al extender el estilo de desarrollo orientado al comportamiento legible por humanos de marcos como Cucumber y RSpec al propio código de automatización, Capybara pretende desarrollar pruebas automatizadas sencillas basadas en la web. [ 3 ]
Anatomía del capibara
Capybara es una biblioteca de Ruby (también conocida como gema ) que se utiliza con un controlador web subyacente. 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 utilizando el DSL (y el controlador web subyacente), Capybara intentará localizar el elemento relevante en el DOM (Modelo de Objetos del Documento) y ejecutar una acción como hacer clic en un botón, un enlace, etc.
Conductores
Por defecto, Capybara utiliza un :rack_testcontrolador que no admite la ejecución de JavaScript . Los controladores se pueden cambiar en los bloques Before y After. A continuación, se mencionan algunos de los controladores web compatibles con Capybara.
Prueba de rack
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 . Por lo tanto, solo puede utilizarse para aplicaciones Rack.
Selenio
Selenium -webdriver, que se usa principalmente en marcos de automatización basados en web, es compatible con Capybara. A diferencia del controlador predeterminado de Capybara, admite JavaScript, puede acceder a recursos HTTP fuera de la aplicación y también se puede configurar para realizar pruebas en modo headless, lo que resulta especialmente útil para escenarios de CI. [ 4 ]
Kit web de capibara
El controlador Capybara-webkit se utiliza para realizar pruebas de navegador sin interfaz gráfica con soporte para JavaScript. Utiliza QtWebKit y es significativamente más rápido que Selenium, ya que no carga el navegador completo.
Emparejadores
Capybara localiza un elemento mediante lenguaje específico de dominio o XPath / selectores CSS . Las coincidencias parciales pueden generar resultados inesperados. Dos o más coincidencias pueden incluso provocar un error de coincidencia ambigua. A continuación se muestran las estrategias de coincidencia compatibles con Capybara: [ 4 ]
Primero: Elige el primer elemento que coincida. No es recomendable usarlo.
uno: Permite que solo coincida un elemento. Se generará un error si hay 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 (tanto los exactos como los que no lo son). Si se encuentran varias coincidencias, se devuelve el primer elemento que coincide exactamente, descartando los demás.
Uso
Proceso de registro de usuarios
Aquí se muestra un ejemplo de cómo se realiza la prueba de registro de usuario con Capybara. Se realiza una prueba para verificar si el usuario puede continuar con el proceso de registro o si existen restricciones. Si posee las credenciales necesarias, se registrará y se le redirigirá a la página de bienvenida. [ 5 ]
describe 'UserRegistration' do it 'permite que un usuario se registre' do visit new_user_registration_path fill_in 'Nombre' , with : 'Nuevo' fill_in 'Apellido' , with : 'Usuario' fill_in 'Correo electrónico' , with : 'newuser@example.com' fill_in 'Contraseña' , with : 'userpassword' fill_in 'Confirmación de contraseña' , with : 'userpassword' click_button 'Registrarse' page . should have_content 'Bienvenido' end endCapibara con pepino
Un ejemplo de una función de Capybara utilizada con Cucumber:
Cuando /^quiero agregar/ do fill_in 'a' , with : 100 fill_in 'b' , with : 100 click_button 'Agregar' endCapibara con RSpec
Se requiere cierta integración mínima para poder usar Capybara con RSpec [ 4 ] [ 6 ]
describe 'ir a la página de inicio' do it 'abre la página de inicio' do visit ( get_homepage ) expect ( page ) . to have_content ( 'Bienvenido' ) end endHerramientas similares
Véase también
Referencias
- ↑ "Versión 3.40.0" . 27 de enero de 2024. Consultado el 19 de febrero de 2024 .
- 1 2 Fox, Armando; Patterson, David A. (2013). Ingeniería de software como servicio: un enfoque ágil mediante computación en la nube . Strawberry Canyon LLC. ISBN 9780984881246.
- ↑ Pruebas de aplicaciones con Capybara . ISBN 9781783281268.
- 1 2 3 4 "Los fundamentos de Capybara y cómo mejorar tus pruebas" . SitePoint . 18 de agosto de 2014. Recuperado el 8 de febrero de 2016 .
- ↑ "Pruebas de integración de Devise con RSpec y Capybara" . garyrafferty.com . Archivado del original el 21/01/2016 . Consultado el 16/02/2016 .
- ↑ Liss, Jo. "Capybara (y Selenium) con RSpec y Rails 3: tutorial rápido" . www.opinionatedprogrammer.com . Archivado del original el 5 de febrero de 2016. Consultado el 8 de febrero de 2016 .
- Herramientas de prueba de software
- Software que utiliza la licencia MIT.
- Pruebas de interfaz gráfica de usuario
- Herramientas de prueba de carga
- marcos de pruebas unitarias
- Software de desarrollo web
- Extracción de datos web
- Software libre programado en Ruby