Este es un proyecto de Automatización Mobile que utiliza Serenity BDD y Appium para la creación de un framework de automatización que permita probar el apk BOOKING
Este proyecto ha sido desarrollado por Camila Dimas para mejorar el desarrollo en pruebas avanzadas de mobile automation.
- Name:
Camila Dimas
- Country:
Colombia
- City:
Bogotá
- LinkedIn: https://www.linkedin.com/in/camiladimas/
Este proyecto utiliza los siguientes lenguajes y frameworks:
-
Serenity BDD como framework de pruebas automatizadas.
-
Appium como framework para probar y validar aplicaciones web nativas, híbridas y móviles.
-
Cucumber como software de testing BDD que permite elaborar pruebas a partir de AC.
-
Java 17 como lenguaje de programación.
-
Screen Play como el patrón de diseño.
-
Gradle como herramienta de compilación.
- Descargar la última versión estable de Java JDK aquí
- Instalar git desde aquí
- Instalar Gradle Build Tool desde aquí
- Instalar Android studio aquí
- Instalar Appium Desktop(Server GUI) aquí
- Instalar Appium Inspector aquí
🗒️ Nota: build.gradle
tiene toda la configuración del proyecto instalada, ejecutar el siguiente comando para
iniciar todas las tareas (Incluidos los test).
👀 Adicional en su IDE de preferencia deberá tener instalados los siguientes plugins:
- JUnit
- Cucumber for Java
- Gherkin
- Lombok
Con GitHub Actions, puedes crear flujos de trabajo de integración continua (IC) directamente en tu repositorio de GitHub.
Para este proyecto se hace uso de GitHUb Actions como herramienta para la integración continua del framework de automatización desarrollado.
La ruta del pipeline se encuentra en: .github/workflows/automated-testing-integration.yml
develop | status |
---|---|
Pruebas de integración |
⏱️ Ejecución automatizada:
El pipepile se ejecutará periódicamente de forma automática por medio la siguiente 'cron schedule expression':
on:
schedule:
- cron: "00 13 * * TUE"
📄️ Generando los reportes de prueba:
Con la ejecución del pipepile se generará un artefacto testing-reports
donde se alojarán los reportes con los
resultados de esa ejecución realizada.
Test diseñados para validar los escenarios Happy Paths 😃
✨ FEATURE: Booking | Creación de un servicio completo de alojamiento
[YP-001] Validar ingreso de los datos para la búsqueda de alojamiento
[YP-002] - Validar la selección de resultados de alojamiento
[YP-003] - Validar el formulario de información del cliente
[YP-004] - Validar el medio de pago y finalización de la reserva
Test diseñados para validar los escenarios UNHappy Paths 🤡
✨ FEATURE: UnHappy Paths | Funcionamiento del servicio de alojamiento
- [YP-005] Validar que no se permita buscar un alojamiento sin seleccionar una ciudad de destino
El proyecto tiene scripts de compilación para Gradle y sigue la estructura la siguiente estructura basada en el patrón de diseño de Screenplay:
src
+ main | Source main
+ test |
+ java | Test runners and supporting code
+ co.com.bdb.certificacion | Package base
+ features | Features set
+ {feature_name} | Feature name
+ pages | Pages use with webdriver test
+ steps | Utility class for definition steps
+ {feature_name}Definition.java | Definition class
+ model | DTOs, Pojos, VOs, etc ...
+ utils | General utility class
+ Runners | Main class
+ resources |
+ features | Feature files
+ {feature_name} | Feature file specific
{feature_name}.feature
|
+ serenity.conf | Config file for Serenity
serenity.properties | General properties Serenity
- Descarga el proyecto desde GitHub
- Opción 1 (HTTPS):
https://github.com/CAMIDIMAS18/booking-mobile-automation-testing.git
- Opción 2 (SSH):
git@github.com:CAMIDIMAS18/booking-mobile-automation-testing.git
- Opción 3: Descárgalo como archivo Zip y extráelo
- Opción 1 (HTTPS):
- CD en la carpeta
booking-mobile-automation-testing
. - Configurar Gradle
- Ejecute el siguiente comando en el terminal:
./gradlew build
.
- Ejecute el siguiente comando en el terminal:
-
Ejecutar las pruebas en el proyecto
- Opción 1: ejecutar en la ruta del proyecto alguno de los siguientes comandos:
./gradlew clean test --info
gradle clean test --no-build-cache -Dcucumber.filter.tags="@Regression"
- Opción 2: Ir a las clases de la carpeta runners
src/test/java/co/com/booking/runners
y ejecutar cada Runner.
El informe al detalle con los pasos y resultados de las pruebas que se registrará en la ruta:
target/site/serenity/index.html
.
Adicional se genera un reporte single page si se desea una revisión de alto nivel sobre los resultados de los test, el
cual se registrará en la ruta:
target/site/serenity/serenity-summary.html
.
Este comando permitirá generar ambos reportes:
./gradlew reports