From 5c24ae56a9263355bb1098301b54e745d79e1a03 Mon Sep 17 00:00:00 2001 From: MathieuSevignyLavallee <89943988+MathieuSevignyLavallee@users.noreply.github.com> Date: Fri, 15 Nov 2024 20:09:56 -0500 Subject: [PATCH] write to file base --- test/stressTest/main.js | 24 +++++++++--------- test/stressTest/metrics/metrics_report.json | 18 ++++++++++++++ test/stressTest/metrics_report_1731719315629 | 18 ++++++++++++++ test/stressTest/metrics_report_1731719370035 | 18 ++++++++++++++ test/stressTest/utility/writeMetrics.js | 26 ++++++++++++++++++++ 5 files changed, 93 insertions(+), 11 deletions(-) create mode 100644 test/stressTest/metrics/metrics_report.json create mode 100644 test/stressTest/metrics_report_1731719315629 create mode 100644 test/stressTest/metrics_report_1731719370035 create mode 100644 test/stressTest/utility/writeMetrics.js diff --git a/test/stressTest/main.js b/test/stressTest/main.js index a85ef4f..f5c925a 100644 --- a/test/stressTest/main.js +++ b/test/stressTest/main.js @@ -1,6 +1,7 @@ import { attemptLoginOrRegister, createRoomContainer } from './utility/apiServices.js'; import { Student } from './class/student.js'; import { Teacher } from './class/teacher.js'; +import { writeMetricsToFile } from './utility/writeMetrics.js'; const BASE_URL = 'http://localhost'; const user = { username: 'admin@example.com', password: 'adminPassword' }; @@ -105,17 +106,18 @@ function closeAllSockets() { console.log('Toutes les connexions Socket.IO ont été déconnectées.'); } -function generateReport(){ +function generateReport() { console.log('Toutes les tâches ont été terminées.'); - console.log('--- Résultats du test de charge ---'); - console.log(`Salles créées : ${metrics.roomsCreated}`); - console.log(`Échecs de création de salles : ${metrics.roomsFailed}`); - console.log(`Enseignants connectés : ${metrics.teachersConnected}`); - console.log(`Échecs de connexion des enseignants : ${metrics.teachersFailed}`); - console.log(`Étudiants connectés : ${metrics.studentsConnected}`); - console.log(`Échecs de connexion des étudiants : ${metrics.studentsFailed}`); - console.log(`Durée totale d'exécution : ${(metrics.endTime - metrics.startTime) / 1000}s`); - console.log('Utilisation de la mémoire :', process.memoryUsage()); + console.log('--- Résultats du test de charge ---'); + console.log(`Salles créées : ${metrics.roomsCreated}`); + console.log(`Échecs de création de salles : ${metrics.roomsFailed}`); + console.log(`Enseignants connectés : ${metrics.teachersConnected}`); + console.log(`Échecs de connexion des enseignants : ${metrics.teachersFailed}`); + console.log(`Étudiants connectés : ${metrics.studentsConnected}`); + console.log(`Échecs de connexion des étudiants : ${metrics.studentsFailed}`); + console.log(`Durée totale d'exécution : ${(metrics.endTime - metrics.startTime) / 1000}s`); + console.log('Utilisation de la mémoire :', process.memoryUsage()); + writeMetricsToFile( metrics); } async function main() { @@ -129,7 +131,7 @@ async function main() { await addAndConnectStudents(); metrics.endTime = new Date(); - + generateReport(); } catch (error) { console.error('Une erreur est survenue :', error.message); diff --git a/test/stressTest/metrics/metrics_report.json b/test/stressTest/metrics/metrics_report.json new file mode 100644 index 0000000..fde1ad8 --- /dev/null +++ b/test/stressTest/metrics/metrics_report.json @@ -0,0 +1,18 @@ +{ + "roomsCreated": 5, + "roomsFailed": 0, + "teachersConnected": 5, + "teachersFailed": 0, + "studentsConnected": 295, + "studentsFailed": 0, + "startTime": "2024-11-16T01:06:28.606Z", + "endTime": "2024-11-16T01:06:31.135Z", + "executionTime": 2.529, + "memoryUsage": { + "rss": 72040448, + "heapTotal": 51122176, + "heapUsed": 23656264, + "external": 4503630, + "arrayBuffers": 170538 + } +} \ No newline at end of file diff --git a/test/stressTest/metrics_report_1731719315629 b/test/stressTest/metrics_report_1731719315629 new file mode 100644 index 0000000..828dd90 --- /dev/null +++ b/test/stressTest/metrics_report_1731719315629 @@ -0,0 +1,18 @@ +{ + "roomsCreated": 5, + "roomsFailed": 0, + "teachersConnected": 5, + "teachersFailed": 0, + "studentsConnected": 295, + "studentsFailed": 0, + "startTime": "2024-11-16T01:08:33.133Z", + "endTime": "2024-11-16T01:08:35.626Z", + "executionTime": 2.493, + "memoryUsage": { + "rss": 71737344, + "heapTotal": 51122176, + "heapUsed": 23472768, + "external": 4499368, + "arrayBuffers": 166276 + } +} \ No newline at end of file diff --git a/test/stressTest/metrics_report_1731719370035 b/test/stressTest/metrics_report_1731719370035 new file mode 100644 index 0000000..0a9eb5d --- /dev/null +++ b/test/stressTest/metrics_report_1731719370035 @@ -0,0 +1,18 @@ +{ + "roomsCreated": 5, + "roomsFailed": 0, + "teachersConnected": 5, + "teachersFailed": 0, + "studentsConnected": 295, + "studentsFailed": 0, + "startTime": "2024-11-16T01:09:27.129Z", + "endTime": "2024-11-16T01:09:30.032Z", + "executionTime": 2.903, + "memoryUsage": { + "rss": 72146944, + "heapTotal": 50860032, + "heapUsed": 22783944, + "external": 4496062, + "arrayBuffers": 162970 + } +} \ No newline at end of file diff --git a/test/stressTest/utility/writeMetrics.js b/test/stressTest/utility/writeMetrics.js new file mode 100644 index 0000000..ee23c29 --- /dev/null +++ b/test/stressTest/utility/writeMetrics.js @@ -0,0 +1,26 @@ +import fs from 'fs'; + +/** + * Écrit les métriques dans un fichier JSON. + * @param {string} filename - Nom du fichier où écrire les métriques. + * @param {Object} metrics - Objet contenant les métriques à enregistrer. + */ +export function writeMetricsToFile(metrics) { + const metricsData = { + ...metrics, + startTime: metrics.startTime?.toISOString(), + endTime: metrics.endTime?.toISOString(), + executionTime: metrics.endTime && metrics.startTime + ? (metrics.endTime - metrics.startTime) / 1000 + : null, + memoryUsage: process.memoryUsage(), + }; + + fs.writeFile(`metrics_report_${Date.now()}`, JSON.stringify(metricsData, null, 4), (err) => { + if (err) { + console.error('Erreur lors de l\'écriture des métriques dans le fichier :', err.message); + } else { + console.log(`Métriques enregistrées dans le fichier metrics_report_${Date.now()}.`); + } + }); +}