/qa-transversal-proyecto-base-manejo-base-de-datos-java

Este proyecto base proporciona una estructura inicial para el desarrollo de automatizaciones web en Java que involucran el manejo de bases de datos.

Primary LanguageJava



Proyecto Base para el Manejo de Base de Datos en Java

Proyecto base de Pragma.

Java MySQL PostgreSQL SQL Cucumber Serenity Selenium

Este proyecto base proporciona una estructura inicial para el desarrollo de automatizaciones web en Java que involucran el manejo de bases de datos. Incluye configuraciones básicas, como la conexión a la base de datos la cual es privada y esta sobre un motor de base de datos web, en caso de requerir mas info contacte al colaborador, tambien se trabajo con un esquema general para organizar y desarrollar las funcionalidades relacionadas con la base de datos de manera eficiente y estructurada. Utiliza las mejores prácticas y patrones de diseño para garantizar la escalabilidad, mantenibilidad y robustez del sistema. Este proyecto sirve como punto de partida para construir aplicaciones Java que requieren interacción con bases de datos de diversos tipos y tamaños.

TopicosTecnologiasConsideracionesDescargaInstalación y ejecuciónAutoresRelacionadosRoadmap

Topicos

  • Java
  • Bases de datos
  • SQL
  • Cucumber
  • Serenity
  • Selenium

Tecnologias

This project required:

  • [JDK java] version 16
  • [Serenity] version 4
  • [Gradle] last version

Nota:

  • Se requiere Selenium posterior a la version 4.11 para la descarga automatica de algunos drivers de los navegadores La version de Serenity implementada (4.0.0) ya incluye Selenium 4.12 lo cual soporta los navegadores a Octubre del 2023 si el proyecto presenta problemas relacionados a las version del driver descargado de forma automatica y la version de su navegador vale la pena revisar que este trabajando con versiones recientes de Serenity y checkear las versiones de Selenium incluidas en dicha version de Serenity
  • Con Selenium Manager incluido en Serenity 4.0.0 ya no se requiere WebDriverManager de Boni Garcia, razon por la cual ya serenity no lo incluye dentro de sus dependencias

Consideraciones

  • Para hacer uso de la la utilidad de Base de Datos es importante que se instacie una Base de datos y se configura en el archivo de configuración ubicado en:

          ./src/main/resources/configs/congig.properties
    
      En las dependencias del proyecto esta agregada la dependencia del driver de MySQL, si no 
      desea realizar mayores ajustes respecto al motor de BD use MySQL. Si desea usar otro motor, 
      adiciones la dependencia del driver al build.gradle y configure este driver como observa 
      se realizo para MySQL en: 
    
          ./src/main/java/utils/ConectionBD.java
      
      Nota: Algunos motores de BD no requieren agregar la dependencia del driver como Oracle o MSserver
    

Descarga

Para clonar está aplicación desde la linea de comando:

git clone https://github.com/somospragma/qa-transversal-proyecto-base-manejo-base-de-datos-java
cd qa-transversal-proyecto-base-manejo-base-de-datos-java
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

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 Chrome gradle:

gradle clean test -Dcontext=chrome -Dwebdriver.driver=chrome
gradle clean test --info --stacktrace --tests "ruta.nameRunner" -Dcontext=chrome -Dwebdriver.driver=chrome
gradle clean test -Dcucumber.options="--tags @someTag" -Dcontext=chrome -Dwebdriver.driver=chrome
gradle clean test -Dcucumber.options="--tags '@someTag or @someTag'" -Dcontext=chrome -Dwebdriver.driver=chrome

Nota:

  • Si ejecuta en la consola de gradle no debe usar comillas simples '...' para encerrar '-Dwebdriver.driver=chrome'
  • Si ejecuta en la consola estándar de la máquina quizás si deba utilizar '...' en las porciones del comando que incluyan puntos
  • Con "./gradlew test ..." ejecuta el gradle compilado del proyecto
  • Con "gradle test ..." ejecuta el gradle de su maquina, el configurado en las variables de entorno de su sistema operativo

ejemplo

./gradlew clean test --info --stacktrace --tests "co.com.pragma.runners.CompareImageRunner" -Dcontext=chrome '-Dwebdriver.driver=chrome'
./gradlew clean test --info --stacktrace --tests "co.com.pragma.runners.LoginRunner" -Dcontext=chrome '-Dwebdriver.driver=chrome'

🛠️ Run tests Firefox gradle:

./gradlew clean test -Dcontext=firefox '-Dwebdriver.driver=firefox'
./gradlew test --tests "runners.RunnerTags" '-Dcontext=firefox -Dwebdriver.driver=firefox'

ejemplo

./gradlew clean test --info --stacktrace --tests "runners.RunnerTags" '-Dcontext=firefox -Dwebdriver.driver=firefox'

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

Run tests in different browser:

gradle command... -Dwebdriver.driver=chrome
gradle command... -Dwebdriver.driver=firefox
gradle command... -Dwebdriver.driver=edge

Autores


Mauro L. Ibarra P.


Javier D. Duran

Relacionados

Roadmap

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