Automatización con Selenium y Cucumber [JAVA] #4 ► Primer Escenario en Gherkin 🥒
Summary
TLDREste video presenta un tutorial sobre cómo comenzar a automatizar pruebas usando Selenium y Cucumber en un entorno de Java. Explica cómo configurar el proyecto creando paquetes y clases esenciales para la automatización de pruebas. Se muestra cómo estructurar las pruebas en lenguaje Gherkin, con ejemplos claros de cómo configurar los escenarios de prueba. El presentador también ofrece consejos sobre la configuración del entorno y el uso de expresiones regulares para vincular los pasos con el código Java. Al final, se ejecuta el primer caso de prueba, estableciendo las bases para futuros avances.
Takeaways
- 💻 Se está creando un proyecto de automatización utilizando Java y Selenium.
- 📁 Se recomienda organizar el proyecto creando tres paquetes: features, runner y seleniumGlueCode.
- 📝 Dentro del paquete 'features' se escriben los escenarios de prueba en lenguaje Gherkin.
- 🏃 En el paquete 'runner' se define la clase 'TestRunner', que ejecuta las automatizaciones.
- 📄 En el paquete 'seleniumGlueCode' se implementan los pasos definidos en los escenarios de prueba.
- ⚙️ Se utiliza Cucumber para la ejecución de los tests, configurando las rutas para los features y las implementaciones.
- ❌ Al ejecutar el código por primera vez, no se encontraron features, ya que aún no se había definido ningún escenario.
- 🖱️ El primer caso de prueba es verificar que al hacer clic en 'Little Tester Comics', se redirige a la categoría de cómics.
- 🤖 Cucumber genera automáticamente el código base para los pasos no implementados, que luego se deben definir manualmente.
- ✅ Se realiza una prueba básica sin errores, pero no se implementa ninguna validación real hasta el siguiente video.
Q & A
¿Qué página se utiliza en el video para realizar las automatizaciones?
-La página utilizada para las automatizaciones es 'The Little Tester', una página de automatización con artículos y soluciones sobre Java y Selenium.
¿Cuál es el propósito de crear los tres paquetes mencionados en el video?
-Los tres paquetes ('features', 'runner', y 'selenium.gluecode') sirven para organizar el código: 'features' contiene los escenarios de prueba escritos en Gherkin, 'runner' ejecuta las automatizaciones, y 'selenium.gluecode' contiene la implementación de los pasos de los escenarios.
¿Qué clase se utiliza para iniciar la ejecución de las automatizaciones?
-La clase utilizada para iniciar las automatizaciones es 'TestRunner', que es ejecutada con Cucumber.
¿Cómo se configuran los escenarios y los pasos de prueba en Cucumber?
-Se configuran usando la anotación '@CucumberOptions', donde se especifica la ruta de los escenarios de prueba ('features') y la ruta donde están implementados los pasos ('glue').
¿Por qué Cucumber no encontró escenarios de prueba al principio?
-Cucumber no encontró escenarios de prueba al principio porque el archivo de 'features' aún no contenía ningún escenario definido.
¿Qué prueba se describe como el primer escenario en el video?
-El primer escenario prueba que, al hacer clic en el título 'Little Tester Comics' en la pantalla principal de la página, se redirige a la categoría de cómics y se muestran los cómics disponibles.
¿Qué lenguajes y herramientas se utilizan en el video para escribir y ejecutar los casos de prueba?
-Se utilizan el lenguaje Gherkin para escribir los escenarios de prueba, Java para la implementación de los pasos, y las herramientas Cucumber y Selenium para la ejecución y automatización de pruebas.
¿Qué hace Cucumber cuando los pasos del escenario no están implementados?
-Cucumber lanza una excepción 'PendingException' cuando los pasos del escenario no están implementados y sugiere el código que se debe agregar para implementar cada paso.
¿Cómo se vinculan los pasos de prueba escritos en Gherkin con los métodos en Java?
-Los pasos de prueba se vinculan con los métodos en Java usando expresiones regulares. Cucumber busca coincidencias entre los pasos escritos en Gherkin y los métodos definidos en el código Java mediante estas expresiones regulares.
¿Qué se espera en el siguiente video según el final del guion?
-En el siguiente video se espera que se implementen correctamente los métodos de los pasos para que el escenario de prueba realmente verifique algo, en lugar de ser métodos vacíos.
Outlines
🤖 Introducción a la automatización con Selenium y Cucumber
Este primer párrafo introduce la plataforma de automatización utilizada, llamada 'El Tester'. Se menciona que la página incluye contenido sobre Java, Selenium y cómics. El propósito del video es enseñar cómo crear automatizaciones, comenzando por la creación de un proyecto con una estructura de carpetas y paquetes para organizar el código. Se agregan tres paquetes: 'features', 'runner', y 'steps', donde se almacenarán los escenarios de prueba escritos en Gherkin, el punto de partida de las automatizaciones, y la implementación de los pasos, respectivamente.
🖥️ Configuración del entorno y primeras pruebas
En este segundo párrafo, se explica cómo configurar el entorno de desarrollo. Se desactiva la opción de 'spelling' en el IDE para evitar que se marquen palabras reservadas como errores. Luego, se ejecuta la clase 'Test Runner' para verificar que las automatizaciones funcionen correctamente, pero Cucumber no encuentra escenarios de prueba. A continuación, el autor comienza a escribir el primer caso de prueba, que implica la navegación a la categoría de cómics en la página principal al hacer clic en el título 'Little Tester Comics'.
⚙️ Creación y ejecución de escenarios de prueba con Cucumber
Aquí se escribe y se ejecuta el primer escenario de prueba en lenguaje Gherkin, que consiste en verificar que al hacer clic en 'Little Tester Comics', se redirija a la página de cómics. Cucumber identifica que los pasos aún no están implementados y proporciona el código necesario. El autor copia este código en la clase 'Test' dentro del paquete 'selenium'. Luego, tras importar las librerías necesarias, se vuelve a ejecutar el escenario, pero Cucumber ignora los pasos no implementados. Se retiran las excepciones y se ejecuta correctamente sin errores.
✅ Conclusión: Estructura inicial lista y primeros pasos en Gherkin
El párrafo final resume el progreso logrado: se ha creado la estructura básica del proyecto, con los paquetes para las pruebas y las implementaciones de pasos. Aunque el caso de prueba creado aún no realiza ninguna validación útil, el autor destaca que se han definido los primeros métodos en Java que coinciden con los pasos en Gherkin. Cucumber utiliza expresiones regulares para vincular los pasos con los métodos en Java. El autor concluye mencionando que en el próximo video se implementarán métodos funcionales y se agradece a los espectadores por seguir el tutorial.
Mindmap
Keywords
💡Automatización
💡Selenium
💡Cucumber
💡Gherkin
💡Test Runner
💡Features
💡JUnit
💡Paquete
💡Pasos
💡Test de Cómics
Highlights
Comienzo de la creación de las primeras automatizaciones usando Java y Selenium.
La página de Little Tester se utiliza para la automatización con varios artículos y soluciones en Java y Selenium.
Explicación de cómo configurar el ambiente de pruebas y agregar dependencias en el archivo XML.
Se crean tres paquetes nuevos: features, runner y selenium.
El paquete 'features' contiene los escenarios de prueba escritos en Gherkin.
El paquete 'runner' se utiliza para comenzar a ejecutar las automatizaciones.
En el paquete 'selenium', se implementan los pasos de los escenarios de prueba.
Se explica cómo hacer la clase 'runner' ejecutable con Cucumber.
Cucumber options define las rutas donde se buscarán los escenarios de prueba y las implementaciones de los pasos.
Se desactiva la corrección ortográfica en el IDE para evitar remarcar palabras como inválidas.
Cucumber no encuentra escenarios definidos, lo que lleva a escribir el primer escenario de prueba en Gherkin.
Primer caso de prueba: redirección a la categoría de cómics desde la pantalla principal de Little Tester.
Cucumber ignora los tests porque los pasos no están implementados.
Se copian los métodos sugeridos por Cucumber y se implementan en la clase correspondiente.
Cucumber logra ejecutar el primer escenario de prueba, aunque sin funcionalidad real, pero confirma que los pasos coinciden con los métodos.
Transcripts
o la vida del bienvenido sacu automation
y vamos a empezar de una vez a crear
nuestras primeras automatizaciones así
que comenzamos lo que vamos a utilizar
para correr nuestras o para realizar
nuestros tests va a ser esta página que
se llama a llamar y el tester es una
página de automatización básicamente
tiene un montón de artículos y
soluciones con java y selenium
básicamente
tiene también una sección de cómics así
que es la página que vamos a utilizar
para automatizar de acá en adelante sí
así que vamos a arrancar en el vídeo de
configuración de ambiente habíamos
dejado esto por acá teníamos nuestro
archivo xml
en donde teníamos todas las dependencias
que íbamos a utilizar así que esto por
ahora lo vamos a cerrar vemos que por
defecto no se había creado esta
estructura de carpetas
así que lo que vamos a empezar a hacer
ahora es crear tres nuevos paquetes
vamos a ir al paquete java vamos a darle
clic derecho y vamos a agregar
un nuevo paquete que se va a llamar
features
vamos a agregar un pack de más que se va
a llamar
y vamos a agregar por último un tercer
paquete que se va a llamar
bien dentro del paquete features vamos a
agregar un nuevo archivo que se va a
llamar texto punto fitur
dentro del paquete runner vamos a
agregar una nueva clase que se va a
llamar test runner
y dentro de él en hyung lookout vamos a
agregar también una clase que se va a
llamar test
bien que va a contener cada uno de estos
paquetes en el paquete de features vamos
a tener todos los escenarios de prueba
escritos en lenguaje gherkin en el
paquete trainer vamos a tener el punto
de partida donde van a comenzar a
ejecutarse en nuestras automatizaciones
y en selenio en blue coat lo que vamos a
tener es la implementación de todos los
pasos de nuestros escenarios de prueba
así que esta va a ser la estructura
básica que vamos a tener
en nuestro proyecto vamos a arrancar con
la clase the runner si esta va a ser la
clase que en la que se va a van a
empezar a correr nuestras
automatizaciones así que lo primero que
tenemos que decir es que queremos que
sea una clase ejecutable y que se
ejecute con cucumber
así que vamos a empezar vamos a poner
sino que íbamos a poner en tweets
y vamos a decir que queremos que corra
con
vemos que el líder automáticamente nos
importa las librerías correspondientes
tanto de unit runner como de j yun y
cucumber y vamos a decirle a cucumber
dos cosas muy importantes la primera
cosa que tenemos que decir es en dónde
va a ir a buscar nuestros escenarios de
prueba y la segunda cosa muy importante
que tenemos que decir es en dónde van a
estar las implementaciones de cada uno
de los pasos de nuestros escenarios
entonces
vamos a indicarle esto
de la siguiente manera le vamos a decir
con cumbre options
y abrir paréntesis y le vamos a decir
los features quiero que los vayas a
buscar a la ruta sur
test
esta ruta que tenemos acá sur test
features sí para que venga a buscar los
escenarios de prueba dentro de esta
carpeta y lo segundo que tenemos que
decir es en dónde van a estar
implementados esos escenarios del
programa así que la tenemos en el
paquete selenium glück kommt entonces le
decimos club queremos que vaya a
buscarlos al
el paquete selenio
tiene que estar en 3
con muchas dobles y
voy a desactivar el spinning para que el
ide no me detecte estas palabras como
como palabras inválidas así que porque
soy bastante mañoso así que vamos a ir a
file settings
y vamos a destinar la opción de spinning
si si no lo encuentran rápido pueden
buscar
un poco más rápido
spelling
en la parte de editor en la inspecciones
van a destilar lo que el líder le
remarque las palabras
como palabras sin válidas que están
dentro de él
de los comentarios o dentro de las
comillas dobles y que no tendría por qué
hacer ningún control sobre cada una de
estas palabras así que acá vemos que no
nos remarca nada
pero estoy como así si ustedes quieren
dejarlo como estaba antes pueden hacerlo
no hay ningún problema yo porque soy
bastante mañoso me gustaba dejarlo así
bien acá ya vemos que el ide nos detecta
esta clase como una clase ejecutable si
vemos que se puede ejecutar así que
vamos a ejecutarla para ver qué pasa
está compilando nuestro código esto va a
tardar un ratito al principio porque es
la primera vez después va a ser un poco
más rápido
vemos que termino de compilar y cucumber
nos dice que no se encontraron features
dentro de la carpeta sur test features y
no encontró ningún escenario y ningún
paso sí entonces termina con código cero
lo cual es correcto porque nosotros
dentro del archivo de escritura no
tenemos absolutamente nada entonces
vamos a empezar a escribir nuestros
escenarios de prueba nuestro primer
escenario de prueba
si vieron el vídeo anterior en donde
explico cómo escribir casos de prueba en
este lenguaje gherkin
vamos a empezar si no lo vieron les
recomiendo que lo vayan a ver es el
vídeo inmediatamente anterior a este
así están al tanto de cómo escribimos
nuestros escenarios de prueba con este
lenguaje así que bien vamos a ver
nuestro primer sentido de prueba que
vamos a realizar va a ser que dentro de
la pantalla principal de análisis el
tester cuando yo clique sobre
este título de little tester comics
la página me redirige a la categoría de
cómics y me muestre todos los los cómics
que están disponibles
así que ese va a ser nuestro primer caso
de prueba que vamos a desarrollar
así que vamos a empezar a escribir esto
sí como les mencioné en el vídeo
anterior lo primero que tenemos que
hacer es definir un fixture si como
nosotros ya nos descargamos el plugin de
cucumber ya automáticamente nos detecta
las palabras reservadas y nos marca con
un colorcito así que vamos a poner como
fitur vamos a poner categoría
comics
y vamos a ponerle una pequeña
descripción a nuestro futuro que podemos
poner por ejemplo como usuario
quiero leer chistes
de testers
para reírme
y pasar un buen rato
ya tenemos nuestro fit shuruq con una
pequeña descripción de el futuro y vamos
a empezar a escribir nuestro escenario
de prueba así que ponemos escenario y lo
que queremos probar va a ser ingresar
a la categoría cómics
desde la pantalla home
de la pantalla
y acá vamos a poner cada uno de los
pasos que tenemos que realizar para
probar este escenario así que vamos a
poner dado que sería given
el usuario
se encuentra
en la página
job
a little texto
cuándo
hace clic sobre el botón del infield
esther comics entonces hace clic
del botón
de ser cómics
comics
entonces lo que tiene que pasar es
que nos tiene que redirigir a la
pantalla de cómics sí así que vamos a
poner
a la pantalla
perfecto así que ahora ya tenemos
definido un escenario así que vamos a
correr de nuevo nuestras
automatizaciones para ver qué pasa
vamos a ver
con que nos encontramos bueno acá
cucumber nos dice que ignoro todos
nuestros tests si por lo menos ahora
encontró un escenario y encontró tres
pasos pero nos dicen que estos pasos no
están definidos y acá viene la magia o
lo lindo de cucumber así que no se tira
exactamente el código que nosotros
tenemos que escribir para implementar
cada uno de esos pasos si vemos que nos
tira todos estos tres métodos entonces
lo que vamos a hacer es copiar
exactamente cómo nos tira por consola
cucumber y lo que vamos a hacer es ir a
la clase test dentro de selección
bluecoat y lo que vamos a hacer es
simplemente pegarlo
y acá vemos que esto explota un poco
porque no tenemos importadas las
librerías de cucumber así que lo que
vamos a hacer es posicionar los sobre
cada una de estas palabras re marcadas y
le vamos a dar
enter para importar las librerías vamos
a importar
esta sección la queremos desde cucumber
vamos a importar también los web
acá vemos que ya no hay ningún error así
que vamos a correrlo de nuevo
vamos avanzando de a poquito
acá nuevamente ignoro todos nuestros
tests y nos dice que encontró un
escenario y que está pendiente y
encontró también tres pasos y nos dice
que uno está pendiente y dos ni siquiera
fueron ejecutados si entonces acaba con
un ver nos dice que
recibió una excepción de pendín
excepción y la acción que nos dice es
implementar sí así que básicamente con
cum bar nos dice que tenemos métodos que
no están implementados y nos dice que
nos tenemos que implementar entonces lo
que vamos a hacer como primera acción va
a ser sacar
esto porque no nos lance ninguna
excepción en cada uno de los tres
métodos
y en teoría ya tenemos tres métodos que
no lanzan ninguna excepción de que están
pendientes
así que esto debería correr
y debería pasar todo a ver qué pasa
efectivamente si tenemos un escenario
que pasó y tres pasos que también
pasaron y tardó 0 19 8 segundos perfecto
ya tenemos nuestro primer caso de prueba
escrito que no prueba absolutamente nada
pero ya tenemos nuestro primer escenario
de prueba escrito en lenguaje de barking
y ejecutado con cucumber perfecto
vemos que esa no nos remarca cada uno de
estos pasos porque comer
ya marché a cada uno de estos pasos con
un método en java como hace para marchar
cada uno de estos pasos con un método en
java bueno porque en el test runner
nosotros le indicamos en donde en qué
carpeta y van a estar implementados esos
métodos si entonces lo que hace cucumber
cuando empieza a leer esto es ir a la
carpeta
o al paquete es el en un look o va a ver
que tiene una clase test y va a tratar
de buscar cada una de estas definiciones
va a tratar de coincidir la con algunos
de los métodos que nosotros
implementamos para hacer esto hace uso
de esta expresión regular si esto es una
expresión regular entonces lo que va a
hacer cucumber es tratar de marchar cada
uno cada una de estas expresiones
regulares con los nombres que nosotros
le definimos
a cada uno de los pasos si por ejemplo
si nosotros acá le ponemos espacio
vemos que acá ya no está encontrando
ninguna implementación de estos entonces
nos arroja o nos avisa que este que este
paso no está implementado en ningún lado
si nos dice la referencia a este paso no
está definida
entonces
nosotros tenemos que sacar esto y
dejarlo como estaba para qué cucumber
pueda marchar cada uno de estos pasos
con nuestros métodos implementados
así que
perfecto ya escribimos nuestro primer
escenario de prueba lo ejecutamos y paso
sin ningún error esto es el caso de
prueba más inútil de la historia porque
no prueba absolutamente nada pero
avanzamos un montón si ya creamos la
estructura de carpetas que vamos a usar
de acá en adelante tenemos el paquete
features en donde van a estar contenidos
todos los escenarios de prueba
tenemos el paquete runner en donde acá
vamos a empezar a correr las
automatizaciones más adelante vamos a
poner un poco más de contenido acá
adentro para
poner el código que se ejecute es
siempre antes de nuestras pruebas o
cuando queremos un código que se ejecute
una vez que termino de correr
absolutamente todo pero bueno esto por
ahora lo vamos a dejar así y dentro de
ese learning lukoil lo que vamos a tener
es todas las implementaciones de los
distintos escenarios de prueba que
vayamos a escribir sí así que vamos a
dejar este vídeo hasta acá
los espero en el siguiente vídeo en
donde vamos a implementar correctamente
estos métodos para
que realmente pruebe algo y que no sean
métodos fantasmas de alguna manera así
que nada espero que esto haya gustado
no se olviden suscribirse y darle like a
la campanita para que youtube les avise
cuando es un nuevo vídeo y si le pueden
dar laical vídeo me ayudan todavía
muchísimo más así que espero que les
haya gustado y nos vemos en el próximo
vídeo
浏览更多相关视频
Automatización con Selenium y Cucumber - Instalación de Ambiente
Huawei Watch Fit 3 con el iPhone
Cómo instalar Kali Linux en VirtualBox Tutorial paso a paso
Selenium WebDriver Tutorial #2 - Selenium WebDriver Architecture
PyTest: Pruebas Unitarias en Python 🐍 | Unit Tests | Testing Automatizado con Python ✅
18. Tutorial Xcode: Reproducir un sonido automáticamente al abrir la aplicacion
5.0 / 5 (0 votes)