stringtranslate.com

Capibara (software)

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 .

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 entornos de desarrollo ágil y basado en 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 impulsado por el comportamiento legible por humanos de marcos como Cucumber y RSpec al código de automatización en sí, Capybara apunta a 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 utiliza con un controlador web subyacente. Consiste en un DSL (lenguaje específico del 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 de documento) y ejecutará una acción como hacer clic en un botón, enlace, etc.

Conductores

De forma predeterminada, Capybara utiliza el :rack_testcontrolador que no tiene soporte para ejecutar 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 bastidor

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 se puede utilizar para aplicaciones de Rack.

Selenio

Selenium -webdriver, que se utiliza principalmente en marcos de automatización basados ​​en la 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 interfaz gráfica, lo que resulta especialmente útil para escenarios de integración continua. [4]

Kit web de capibara

El controlador Capybara-webkit (una joya) se utiliza para realizar pruebas de navegadores sin interfaz gráfica con compatibilidad con JavaScript. Utiliza QtWebKit y es significativamente más rápido que Selenium, ya que no carga todo el navegador.

Comparadores

Capybara localiza un elemento mediante un lenguaje específico del dominio o selectores XPath / CSS . Las coincidencias parciales pueden generar resultados inesperados. Dos o más coincidencias pueden incluso generar un error de coincidencia ambigua. Las siguientes son las estrategias de coincidencia admitidas por Capybara: [4]

primero: elige el primer elemento que coincida. No se recomienda su uso.

uno: Permitir que solo coincida un elemento. Se genera un error si coincide más de uno.

inteligente: si Capybara.exact es verdadero, se comporta como la opción anterior ( uno ). 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 y se descartan las demás 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 con Capybara. Se realiza una prueba para ver si el usuario puede continuar con el proceso de registro o si hay algún bloqueo. Si tiene las credenciales necesarias, se registrará y luego se lo redireccionará a la página de "Bienvenida". [5]

 describe 'UserRegistration' hazlo 'permite que un usuario se registre' haz visita new_user_registration_path fill_in 'Nombre' , :with => 'Nuevo' fill_in 'Apellido' , : with => 'Usuario' fill_in 'Correo electrónico' , :with => '[email protected]' fill_in 'Contraseña' , :with => 'userpassword' fill_in 'Confirmación de contraseña' , :with => 'userpassword' click_button 'Registrarse' página . should have_content 'Bienvenido' fin fin                                       

Capibara con pepino

Un ejemplo de una característica de Capybara utilizada con Cucumber:

Cuando /^quiero agregar/ hago fill_in 'a' , :with => 100 fill_in 'b' , :with => 100 click_button 'Agregar' fin              

Capibara con RSpec

Se requiere una pequeña integración para utilizar 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 end          

Herramientas similares

Véase también

Referencias

  1. ^ "Versión 3.40.0". 27 de enero de 2024. Consultado el 19 de febrero de 2024 .
  2. ^ ab 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.
  3. ^ Pruebas de aplicaciones con Capybara . ISBN 9781783281268.
  4. ^ abcd "Los conceptos básicos de Capybara y cómo mejorar sus pruebas". SitePoint . 18 de agosto de 2014 . Consultado el 8 de febrero de 2016 .
  5. ^ "Prueba de integración de Devise con RSpec y Capybara". garyrafferty.com . Archivado desde el original el 21 de enero de 2016. Consultado el 16 de febrero de 2016 .
  6. ^ Liss, Jo. "Capybara (y Selenium) con RSpec y Rails 3: tutorial rápido". www.opinionatedprogrammer.com . Consultado el 8 de febrero de 2016 .