🥒 ¿Qué es Cucumber?

🧠 Qué te llevás de esta clase

  • Qué es Cucumber y para qué se usa

  • Por qué es tan popular en testing automatizado

  • Cómo conecta el mundo técnico con el negocio


📖 Explicación en palabras simples

Cucumber es una herramienta que te permite escribir pruebas automatizadas en un lenguaje cercano al humano.

En vez de escribir todo en código desde el principio, podés definir escenarios así:

Given el usuario está en la página principal  
When busca "Free Range Testers"  
Then debería ver resultados relacionados  

Esto está escrito en Gherkin, que es un lenguaje simple pensado para que:

  • QA

  • Developers

  • Product Owners

puedan entender lo que se está probando.

👉 La idea es que todos hablen el mismo idioma.


💡 ¿Dónde entra el código entonces?

Acá está la clave:

Ese texto que escribís (Feature files) se conecta con código por detrás.

Por ejemplo:

  • El Given se conecta a un método en Java

  • El When ejecuta acciones con Selenium

  • El Then valida resultados

Es decir:

👉 Cucumber define el qué
👉 Selenium (y tu código) ejecuta el cómo


💡 Ejemplo práctico

Un escenario podría ser:

Scenario: Búsqueda exitosa  
  Given el usuario está en Google  
  When busca "Free Range Testers"  
  Then debería ver resultados relevantes  

Y por detrás:

  • Selenium abre el navegador

  • Escribe en el input

  • Ejecuta la búsqueda

  • Verifica el resultado

Todo eso no se ve en el Feature, pero pasa.


⚠️ Errores comunes

  • ❌ Pensar que Cucumber automatiza por sí solo
    → No. Necesita código por detrás (Selenium, por ejemplo)

  • ❌ Escribir escenarios demasiado técnicos
    → Si parece código, estás perdiendo el objetivo

  • ❌ Escribir escenarios irreales
    → Tienen que representar comportamiento real del usuario


🧪 Mini ejercicio

Pensá en una app que uses todos los días (Netflix, Gmail, etc.)

👉 Escribí un escenario simple en formato:

  • Given

  • When

  • Then

No importa si no es perfecto. La idea es empezar a pensar en comportamiento.


➡️ Qué sigue

En la próxima clase vamos a ver qué es Gradle
y por qué lo usamos para manejar nuestro proyecto.

Todavía no te preocupes por cómo se conecta todo.
Vamos paso a paso.

Selenium y Cucumber con Java

Comprar ahoraSaber más

Introducción

  • 🧐 ¿Qué vamos a ver en este curso?
  • 🤔 ¿Cómo hacer preguntas?
  • 🔥 Recomendaciones para sacarle el mayor provecho al curso2
  • 💪🏻 Actividades del curso
  • 🧑🏻‍💻 ¿Qué es Selenium WebDriver?
  • 🥒 ¿Qué es Cucumber?
  • 🦾 ¿Qué es Gradle?
  • 🔥 Cuestionario Módulo 1
  • 📍 Actividad módulo 1

Configuración del proyecto

  • Instalación y uso del proyecto Template en GitHub
  • ☕️ Instalando las primeras librerías de nuestro framework
  • 🥗 Otra extensión útil de Cucumber2
  • Actividad: Compartiendo tu Setup Inicial y WebDriver Manager

Page Object Model: Teoría e implementación

  • 🧙🏻‍♂️ Page Object Model: ¿Qué es y por qué usarlo?5
  • 🔥 La otra gran decisión de diseño de nuestro Framework: Screenplay vs POM
  • 🔍 Cuestionario Módulo POM
  • ✋🏻 Actividad: Implementando el Page Object Model (POM)

Introducción a Cucumber: Instalación e implementación

  • 📍 Creando nuestro primer Feature y ejecutándolo1
  • 🧉 BasePage: Creando la configuración e instanciación del WebDriver
  • 🔌 Conectando Feature, Step Def y Page Object Class5
  • 🔍 Cuestionario módulo Cucumber
  • 🥒 Actividad: Instalación e Implementación de Cucumber

Localización de Elementos Web con XPath y CSS

  • 👨🏻‍🎓 Locators y consejos
  • 📝 Cheatsheet para construir buenos locators con XPath y CSS
  • 🧑🏻‍💻 Actividad: Dominando Locators con XPath y CSS

Selenium WebDriver: La librería para interactuar con elementos de una página web.

  • 🏃🏽‍♂️‍➡️ La BasePage: La columna vertebral de nuestro framework.
  • Crear y entender tu sandbox temporal de BuggyBank
  • Cómo llenar campos de texto con la función sendKeys
  • Dropdowns con Selenium Select en BuggyBank
  • 🤖 Cuestionario módulo Selenium
  • ☕️ Actividad: Interactuando con Elementos Usando Selenium WebDriver

Cucumber avanzado: Tags, parámetros y mejores prácticas

  • Ejecutar Cucumber por tags desde Gradle y línea de comandos
  • 🧛🏻‍♀️ Backgrounds en Cucumber
  • 😇 Expresiones para mejorar nuestros Feature Files
  • ✋🏻 Expresiones regulares parte 2
  • 💪🏻 Actividad: Organizando Escenarios con Tags en Cucumber

Assertions: Validando comportamiento esperado

  • Ejercicio 1: Filtrando movimientos en nuestra aplicación bancaria
  • Ejercicio 2 BuggyBank transferencia inválida sin cambiar datos
  • Antes de seguir con los ejercicios...un par de mejoras
  • Ejercicio 3 BuggyBank componente de navegación
  • ✓ Nuestra primera validación: Todos los elementos de un dropdown2
  • 🔍 Tipos de Assertions con TestNG
  • Soft Assertions con BuggyBank
  • 🦸🏻‍♂️ Cuestionario módulo Assertions
  • 👾 Actividad: Validación de Comportamiento Usando Assertions

Generación de Reportes con Cucumber

  • Cucumber Reports actuales reportes públicos y locales
  • 📸 Como agregar screenshots de la falla a nuestro reporte
  • 💻 Cuestionario para el módulo de Cucumber avanzado
  • 🤩 Actividad: Generación de Reportes con Cucumber

Selenium potenciado por IA

  • 🦕 Cómo colaborar con un asistente de IA en un proyecto Selenium
  • 🤩 Cómo revisar probar y mejorar código Selenium generado con IA

CICD con Selenium

  • 🐝 Introducción al concepto de CICD
  • 🏢 Configurando GitHub Actions

Ejercicios aplicando lo aprendido

  • 🦸🏻‍♂️ Entrevista Automation: ¿Cómo resolvemos un ejercicio REAL de Selenium Webdriver?1
  • 🧞 Exámen técnico de Automation con Selenium, Java y Cucumber resuelto y explicado.3
  • Actividad Final: Reflexiona y Comparte Tu Aprendizaje en Testing Automatizado

Dejá tu testimonio inmortalizado en la web

  • 🙏🏻 Testimonio