105 lines
2.8 KiB
Markdown
105 lines
2.8 KiB
Markdown
|
||
# 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:
|
||
```
|
||
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
||
```
|
||
Par
|
||
```
|
||
<script src="./chart.js"></script>
|
||
```
|
||
|
||

|
||
|
||
## Vue de l'état de l'application cible pendant le stress
|
||
 |