Proyecto base de Pragma.
Proyecto donde hacemos uso de Serenity Rest para la automatización de servicios REST usando el patrón de ScreenPlay
- Java
- Cucumber
- Serenity
- RestAssured
- Selenium
- [JDK java] version 17+
- [Serenity] version 4
- [Gradle] last version
- [RestAssured] version 3.6
- [Cucumber] version 3.6
- Screenplay desing pattern
Para clonar está aplicación desde la linea de comando:
git clone https://github.com/somospragma/qa-backend-proyectobase-serenityrest.git
cd qa-backend-proyectobase-serenityrest
git remote remove origin
git remote add origin URL_DE_TU_NUEVO_REPOSITORIO
git push -u origin master
Nota: Asegúrate de reemplazar URL_DE_TU_NUEVO_REPOSITORIO con la URL del repositorio que creaste en tu cuenta de GitHub.
Puedes descargar el proyecto en el enlace download
El proyecto se desarrolló bajo el patrón de diseño de Screenplay, el cual obedece al siguiente esquema:
Los casos de prueba se describen en la ruta src/test/resources/features en los archivos con extensión .feature en formato Given-When-Then, donde cada uno de los tres pasos que lo componen redireccionan a la definición de pasos en la ruta src/test/java/co/com/pragma/stepdefinitions
Dentro de las clases Java de definición de pasos, cada uno de los pasos involucrados en su ejecución se describe utilizando las tareas especificadas en la ruta *src/main/java/co/com/pragma/task, donde estas tareas y definiciones de pasos a su vez hacen uso de widgets descritos en clases UI de Java especificadas en la ruta *src/main/java/co/com/pragma/userinterfaces * y también hacen uso de los modelos de conexión a bases de datos en la ruta *src/main/java/co/com/pragma/model. Algunas tareas también utilizan acciones generales descritas en la ruta *src/main/java/co/com/pragma/actions. En la definición de los pasos de validación denotados por el decorador @Then o en las validaciones intermedias en los pasos de acción denotados con el decorador @When, se utilizan clases de preguntas de Java para realizar validaciones. complejos que pueden ser reutilizados, estos se encuentran descritos en la ruta * *src/main/java/co/com/pragma/questions *, a su vez en pasos de validación se realiza la validación de la estructura del cuerpo de respuesta de los microservicios haciendo uso de esquemas JSON definidos en la ruta src/test/resources/schemas.
En algunos archivos .feature se hace uso de clases Java de modelos de tablas de datos para pasar la información de cada caso de prueba a la definición de pasos con el fin de hacer uso de la misma de una manera más óptima y mantenible, estos modelos se encuentran descritos en la ruta src/main/java/co/com/pragma/model/datatables.
De la misma manera las clases de definición de pasos Java hacen uso de constantes, métodos, funciones y métodos ejecutables como tareas ubicadas en la ruta src/main/java/co/com/pragma/test/util
Al ejecutar casos de prueba de tipo Front o E2E, el proyecto descargará automáticamente la versión más reciente del driver de Chrome según el sistema operativo donde se esté ejecutando. Si esta operación de descarga falla, se envía a la ruta src/test/resources/webdriver, estos drivers deben ser actualizados manualmente por el automator. Estos drivers se pueden descargar desde la página oficial de descarga de Chromium.
La ejecución de los casos de prueba se ordena por las clases Java de runners descritas en la ruta src/test/java/co/com/pragma/runners.
Para ejecutar está aplicación, necesitas Gradle and Java JDK instalados en tu equipo, ten en cuenta que tu IDE puede gestionar la instalación de estos dos requerimientos. Desde la linea de comando:
gradle clean build
gradle command... -Denvironment=defaul
gradle command... -Denvironment=dev
gradle command... -Denvironment=qa
gradle command... -Denvironment=prod
- The default environment will be used if no other value is provided
- Could modify the environment urls in .../test/resources/serenity.conf
Dehiler M. Sepulveda V. |
---|
- Guia QA - (En construcción) Una guia de proyectos Orientados a la Calidad de Software