Skip to content

somospragma/qa-backend-proyectobase-serenityrest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation



Proyecto base de Serenityrest

Proyecto base de Pragma.

Java Cucumber Serenity

Proyecto donde hacemos uso de Serenity Rest para la automatización de servicios REST usando el patrón de ScreenPlay

Topicos

  • Java
  • Cucumber
  • Serenity
  • RestAssured
  • Selenium

Tecnologias

This project required:

  • [JDK java] version 17+
  • [Serenity] version 4
  • [Gradle] last version
  • [RestAssured] version 3.6
  • [Cucumber] version 3.6
  • Screenplay desing pattern

Descarga

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

Estructura del proyecto

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.

Instalación y ejecución

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

Run tests in different environments:

gradle command... -Denvironment=defaul
gradle command... -Denvironment=dev
gradle command... -Denvironment=qa
gradle command... -Denvironment=prod

Note:

- The default environment will be used if no other value is provided
- Could modify the environment urls in .../test/resources/serenity.conf

Autores


Dehiler M. Sepulveda V.

Relacionados

Roadmap

  • Guia QA - (En construcción) Una guia de proyectos Orientados a la Calidad de Software

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •