mirror of
https://github.com/ets-cfuhrman-pfe/EvalueTonSavoir.git
synced 2025-08-11 21:23:54 -04:00
2.3 KiB
2.3 KiB
Tests de Charge
Pour tester la montée en charge et les performances du projet, un test de charge est inclus dans test/stressTest. Il est conçu spécifiquement pour evalue-ton-savoir, avec un focus sur les communications serveur-client et client-client.
Routes utilisé sur le quizRoom
get-usage: Récupère les ressources des conteneurs du réseau.message-from-teacher: Transfert de messages des professeurs aux étudiants.message-from-student: Transfert de messages des étudiants aux professeurs.
Fonctionnement
- Authentification : Récupère un token depuis l’API backend.
- Configuration : Crée les salles de quiz et connecte un professeur à chaque salle.
- Connexion des étudiants : Connecte les étudiants aux salles selon les paramètres.
- Simulation : Messages simulés entre professeurs et étudiants.
- Collecte des données : Collecte les métriques de ressources pour analyse.
Exécution
L'exécution des commandes doit se faire ici: /test/stressTest
Directe
node main.js
- Node.js doit être installé.
- Modifiez les variables dans main.js.
Docker
docker-compose up
- Docker doit être installé.
- Configurez un fichier .env.
Variables d’Environnement
Les variables sont définies dans un fichier .env :
- BASE_URL : URL à tester.
- USER_EMAIL, USER_PASSWORD : Identifiants pour créer et gérer les salles.
- NUMBER_ROOMS : Nombre de salles.
- USERS_PER_ROOM : Nombre d’étudiants par salle.
Variables Optionnelles
- MAX_MESSAGES_ROUND : Nombre maximum de messages par cycle.
- CONVERSATION_INTERVAL : Délai (ms) entre les messages.
- MESSAGE_RESPONSE_TIMEOUT : Délai (ms) avant de considérer un message sans réponse.
- BATCH_DELAY : Délai (ms) entre les envois par lots.
- BATCH_SIZE : Taille des lots de messages.
Résultats Collectés
Métriques
- Salles créées / échouées
- Utilisateurs connectés / échoués
- Messages tentés, envoyés, reçus
Rapports
- JSON : Pour analyse automatisée.
- Rapport texte : Résumé lisible.
- Graphiques (via ChartJS) :
- CPU, mémoire, charge.
