Commit c08f891
committed
test(load): implementar load testing suite - TASK-037
Implementacion completa de load testing:
Locust Load Testing (locustfile.py):
- 3 user classes:
* DORAMetricsAPIUser (wait 1-3s, realistic mix)
* HighVolumeUser (wait 0.5s, stress testing)
* WriteOperationUser (wait 5-10s, POST operations)
- 11 task types con weights realistas:
* get_dora_summary (10)
* get_dashboard (5)
* get_deployment_frequency_chart (3)
* get_lead_time_chart (3)
* get_data_catalog (2)
* query_dora_metrics_catalog (2)
* get_trend_analysis (2)
* check_ecosystem_health (1)
* get_data_quality (1)
* get_comparative_analytics (1)
* get_anomaly_detection (1)
- Features: Real-time stats, percentiles, failures tracking, RPS, HTML reports
Simple Load Test Script (simple_load_test.sh):
- Bash script con curl y GNU parallel
- Concurrent requests configurables
- Response time tracking (ms)
- Statistical analysis (mean, median, p50, p95, p99)
- Performance assessment (pass/fail)
- CSV results output
Test Scenarios:
1. Normal Load: 10 users, 5min
2. Peak Load: 50 users, 10min
3. Stress Test: 100 users, 15min
4. Endurance Test: 20 users, 1hour
Performance Targets:
- Average: < 300ms (threshold: 500ms)
- p50: < 200ms (threshold: 400ms)
- p95: < 800ms (threshold: 1000ms)
- p99: < 1500ms (threshold: 2000ms)
- Success rate: >= 99%
Endpoints Tested (15):
- Core API (4): metrics, dashboard, charts
- Data Catalog (2): catalog, query
- Ecosystem Health (2): health, quality
- Advanced Analytics (7): trends, comparisons, anomalies
Monitoring:
- System metrics (CPU, memory, DB connections)
- Application logs
- Slow queries
- Resource utilization
Archivos:
- scripts/load_testing/locustfile.py
- scripts/load_testing/simple_load_test.sh
- docs/qa/TASK-037-load-testing.md
Story Points: 5 SP
Estado: COMPLETADO1 parent 4fcd2b4 commit c08f891
3 files changed
Lines changed: 906 additions & 0 deletions
0 commit comments