Cucumber no es una herramienta de automatización del navegador, pero funciona bien con las siguientes herramientas de automatización del navegador.
WebDriver está diseñado para proporcionar una , interfaz de programación más concisa que otras herramientas. Selenium-WebDriver admite mejor las páginas web dinámicas en las que los elementos de una página pueden cambiar sin que se vuelva a cargar la página. El objetivo de WebDriver es proporcionar una API orientada a objetos bien diseñada que brinde soporte mejorado para problemas de prueba de aplicaciones web avanzadas modernas.
Selenium-WebDriver se puede usar en múltiples lenguajes de programación, incluidos Java, JavaScript, Ruby y Kotlin.
Veamos un ejemplo de Cucumber usando Selenium-WebDriver en pruebas de interfaz de usuario, convirtiendo el controlador Selenium-Web por ejemplo.
Podemos expresar el ejemplo como siguiente escenario:
Más información sobre Selenium Webdriver.
Herramientas de automatización del navegador para JVM
Serenity BDD es una biblioteca de informes de código abierto que le ayuda a redactar criterios de aceptación automatizados mejor estructurados y más fáciles de mantener. Serenity también produce informes de prueba ricos y significativos (o «documentación viva») que informan no solo los resultados de las pruebas, sino también las características que se han probado.
Aquí se puede encontrar un tutorial detallado sobre el uso de Cucumber-JVM con Serenity, y se puede encontrar más información sobre Serenity en su sitio web oficial.
Serenity BDD es una biblioteca de informes de código abierto que le ayuda a redactar criterios de aceptación automatizados mejor estructurados y más fáciles de mantener. Serenity también produce informes de prueba ricos y significativos (o «documentación viva ”) Que informan no solo los resultados de la prueba, sino también las características que se han probado.
Puede encontrar un tutorial detallado sobre el uso de Cucumber-JVM con Serenity aquí, y puede encontrar más información sobre Serenity en su sitio web oficial .
Serenity solo funciona con lenguajes JVM. Serenity solo funciona con lenguajes JVM.
Herramientas de automatización del navegador para Ruby
Watir (pronunciado agua), es una familia de código abierto (BSD) de las bibliotecas Ruby para automatizar el navegador web s. Le permite escribir pruebas que son más fáciles de leer y mantener. Es sencillo y flexible.
Watir impulsa los navegadores de la misma manera que lo hace la gente. Hace clic en enlaces, llena formularios, presiona botones. Watir también verifica los resultados, como si el texto esperado aparece en la página.
Watir es una familia de bibliotecas Ruby pero es compatible con su aplicación sin importar en qué tecnología se desarrolle. Mientras que Watir solo es compatible con Internet Explorer en Windows; Watir-WebDriver resuelve las pruebas de un solo navegador y es compatible con Chrome, Firefox, Internet Explorer, Opera y también se ejecuta en modo sin cabeza (HTMLUnit).
Ahora pasemos a un programa de prueba de interfaz de usuario de muestra usando Watir:
Ahora incorporemos Cucumber a esta prueba:
Más información sobre Watir.
Watir solo funciona con Ruby.Watir solo funciona con Ruby.Watir solo funciona con Ruby.
Capybara
Cucumber-Rails está preconfigurado con soporte para pruebas de integración de vistas usando Capybara (script/generate cucumber --capybara
).
A menos que se indique lo contrario, el generador de instalación de Cucumber-Rails configurará los archivos de soporte necesarios para Capybara.
Aunque Capybara es el método de prueba preferido para vistas HTML en cucumber-rails, no lo hace Juega bien con el MiniTest/Test::Unit
incorporado de Rails. En particular, siempre que se requiera Capybara en un mundo de pepino, se elimina el método response.body
de Rails Test::Unit
. Capybara depende de Nokogiri y Nokogiri prefiere usar XML en lugar de etiquetas CSS. Este comportamiento se puede anular en ./features/support/env.rb
.
Más información sobre Capybara.
Capybara solo funciona con Ruby.Capybara solo funciona con Ruby.Capybara solo funciona con Ruby.
Captura de pantalla en caso de falla
Tomar una captura de pantalla cuando falla un escenario puede ayudarlo a descubrir qué salió mal. Para tomar una captura de pantalla en caso de falla, puede configurar un gancho posterior.
A continuación se muestra un ejemplo de cómo tomar una captura de pantalla conWebDriver para escenarios fallidos e incrustarlos en el informe de Cucumber.
A continuación se muestra un ejemplo de cómo tomar una captura de pantalla conWebDriver para escenarios fallidos e incrustarlos en el informe de Cucumber.
A continuación se muestra un ejemplo de cómo tomar una captura de pantalla con WebDriver para escenarios fallidos e incrustarlos en el informe de Cucumber.
A continuación se muestra un ejemplo de cómo tomar una captura de pantalla con Capibara para escenarios fallidos e incrustarlos en el informe de Cucumber.
Múltiples navegadores
Cucumber puede ejecutar sus escenarios con diferentes navegadores, según una propiedad de configuración cargada en tiempo de ejecución:
Luego, defina la propiedad browser
cuando ejecute Cucumber:
Si está utilizando Serenity, pase la propiedad del sistema driver
(no se requiere codificación adicional):
Si está utilizando Serenity, pase la propiedad del sistema driver
(no se requiere codificación adicional):