Para poder levantar el entorno de desarrollo y ejecutar las pruebas, es necesario tener instaladas y configuradas las siguientes herramientas en el sistema:
- Docker Desktop (en ejecución).
- Java 17 o superior y Maven (accesible mediante el comando mvn).
- Node.js (v18+) y su gestor de paquetes npm.
- Angular CLI (para la ejecución de pruebas del frontend con ng).
El primer paso antes de levantar cualquier entorno es obtener el código fuente desde el repositorio oficial y acceder al directorio del proyecto. En una terminal, ejecuta:
git clone https://github.com/codeurjc-students/2025-StudySpace
cd 2025-StudySpaceNota importante: Certificado SSL
Debido a que la aplicación utiliza un certificado SSL auto-firmado, el navegador bloqueará por defecto la visualizacion y acceso a la aplicación, a menos que se acepte el riesgo inicialemnete.
Este paso es fundamental para que se muestre la aplicación, al no confiar en el certificado por ser auto-firmado.
En la carpeta docker del proyecto, ejecutar los siguientes comandos para levantar el entorno con Docker, asegurandonos de que Docker Desktop/Engine está arrancado:
docker-compose pull
docker-compose up -dPara detener el entorno, ejecutar:
docker-compose downSi quieres levantar el entorno de desarrollo, ejecuta en la carpeta docker:
docker-compose -f docker-compose-dev.yml up -d --buildPara detener el entorno, ejecutar:
docker-compose -f docker-compose-dev.yml downDentro de la carpeta backend, ejecutar en una terminal con mvn instalado:
mvn -B clean verify
Dentro de la carpeta frontend, ejecutar (Si no tienes los node_modules instalados.):
npm installAntes de probar los test para instalar las dependencias necesarias.
Para estos test ejecutar en la misma carpeta frontend:
ng testPara levantar el entorno de pruebas E2E es necesario seguir estos pasos.
Desde la carpeta docker del proyecto, asegúrate de apagar cualquier contenedor previo por si acaso:
docker-compose downLuego, levanta el contenedor configurado para E2E:
docker-compose -f docker-compose.e2e.yml up -dAhora vamos a ejecutar el backend y frontend en local para que Playwright pueda probarlos.
Dentro de la carpeta backend, ejecutamos:
mvn spring-boot:run -Dspring-boot.run.profiles=e2eY dentro de la carpeta frontend, ejecutamos:
npm startSi aun no tienes los node_modules instalados, ejecuta npm install antes de npm start.
Como último paso, realizamos las pruebas E2E con Playwright, en la carpeta frontend, ejecutamos:
BASE_URL=https://localhost:4200 npx playwright test --uio
$env:BASE_URL="https://localhost:4200"; npx playwright test --uiSi lo ejecutas en PowerShell.
Para cerrar Playwright una vez acabadas las pruebas, ejecutamos:
docker-compose -f docker-compose.e2e.yml downPara realizar pruebas de concurrencia y estrés sobre el servidor y visualizar los resultados en un dashboard interactivo, utilizamos Artillery conectado a Artillery Cloud, atacando el entorno E2E.
Desde la carpeta docker del proyecto, asegúrate de apagar cualquier contenedor previo por si acaso:
docker-compose downLevanta la infraestructura E2E (Base de datos de pruebas H2 y MailHog):
docker-compose -f docker-compose.e2e.yml up -dDentro de la carpeta backend, ejecutamos el servidor con el perfil de pruebas:
mvn spring-boot:run -Dspring-boot.run.profiles=e2eNo es necesario ejecutar el frontend para estas pruebas, ya que se centran en el backend.
Abre otra terminal, dirígete a la carpeta donde están los tests de carga (dentro de backend/src/test).
Si no quieres usar la clave de Artillery Cloud, puedes ejecutar los tests sin ella y no ver reporte visual alguno con:
artillery run load-test-phase-0.ymlSi quieres ver el reporte visual: Pasale la clave de Artillery Cloud como variable de entorno (por seguridad, esta clave se inyecta como variable de entorno). En PowerShell, ejecuta:
$env:ARTILLERY_CLOUD_API_KEY="LA_CLAVE_AQUI"O si es en bash:
export ARTILLERY_CLOUD_API_KEY="LA_CLAVE_AQUI"Una vez configurada la clave en la sesión actual de la terminal, ejecuta el test indicando que grabe los resultados con el flag --record:
artillery run --record load-test-phase-0.ymlAl finalizar la prueba, la consola imprimirá un Run URL (ej. https://app.artillery.io/...). Haz clic en ese enlace o cópialo en tu navegador para acceder al reporte interactivo, donde podrás analizar gráficas detalladas de latencia, distribución de códigos HTTP y rendimiento bajo estrés.
Finalmente, puedes apagar el backend (con Ctrl+C). Luego apaga la infraestructura:
docker-compose -f docker-compose.e2e.yml down