# Avertissement légal ⚠️ N'utilisez ce code que sur des sites que vous possédez ou pour lesquels vous avez une autorisation explicite. Le stress testing non autorisé peut être considéré comme une attaque par déni de service. # Compilation ``` go build -o stress-test main.go ``` # Utilisation ## Aide ``` ./stress-test -help Usage of ./stress-test: -csv string Output CSV file (default "stress_test_results.csv") -d int Test duration in seconds -html string Output HTML report (default "stress_test_report.html") -json string Output JSON file (default "stress_test_results.json") -r int Total number of requests to make -ru int Ramp-up time in seconds -t int Number of threads (goroutines) (default 10) -url string Target URL to test -ws int Window size for time series in seconds (default 5) ``` ## Test basique avec export ``` ./stress-test -url https://mon.site.intranet -t 50 -d 60 -ru 10 ``` ## Avec fenêtre de temps personnalisée (10 secondes) ``` ./stress-test -url https://mon.site.intranet -t 100 -d 120 -ws 10 ``` ## Avec tous les exports personnalisés ``` ./stress-test -url https://mon.site.intranet -t 100 -d 300 -ru 30 \ -csv results.csv -json results.json -html report.html ``` ## Basé sur le nombre de requêtes ``` ./stress-test -url https://mon.site.intranet -t 50 -r 10000 -ws 5 ``` # Exemple d'utilisation ```bash ./stress-test -url https://mon.site.intranet -t 100 -d 600 -ru 60 Starting stress test on https://mon.site.intranet Threads: 100, Duration: 600s, Ramp-up: 60s ------------------------------------------------------------ ``` Execution du test.... ``` ============================================================ STRESS TEST RESULTS ============================================================ Total Duration: 606.10 seconds Total Requests: 335949 Successful Requests: 335949 Failed Requests: 0 Error Rate: 0.00% Requests per second: 554.28 Latency Metrics: Average: 81.00 ms Median: 76.00 ms P95: 134.00 ms P99: 166.00 ms Min: 0.00 ms Max: 403.00 ms ------------------------------------------------------------ Exporting results... ✅ CSV exported to: stress_test_results.csv ✅ JSON exported to: stress_test_results.json ✅ HTML report generated: stress_test_report.html ``` ## stress_test_report.html Récupérer le fichier html et lire avec un navigateur ℹ️ Le html utilise [Chart.js](https://cdn.jsdelivr.net/npm/chart.js), si besoin, récupérer le script localement et modifier le fichier html en remplacant la ligne: ``` ``` Par ``` ``` ![stress_test_report.html](./imgs/stresstest-01.png) ## Vue de l'état de l'application cible pendant le stress ![Vue perf applis](./imgs/stresstest-02.png)