Tests to verify Security Shepherd survives aggressive automated scanning tools without database connection exhaustion. See issue #536.
End-to-end load test that:
- Builds and starts the full Docker stack
- Runs the initial database setup automatically
- Creates 20 test users
- Simulates 17 normal users (browsing every 3-8s) and 3 aggressive users (automated scanning, ~10 req/s each)
- Monitors DB connections and app response times throughout
- Reports pass/fail based on:
- DB connections stay under 50 (pooling prevents exhaustion)
- No health check failures (app stays responsive)
- Response times stay under 10 seconds
# Full run (builds everything from scratch)
./load-test.sh
# Skip the Maven/Docker build if stack images are already current
./load-test.sh --skip-build- Docker
- curl
- Maven (unless using --skip-build)
- Ports 80, 443, 3306, 27017 available
Each run creates a timestamped directory under results/ with:
monitor.csv— time-series of DB connections, HTTP status, and response timecookies_*.txt— session cookies (auto-cleaned)aggressive_*_requests.txt— request counts per aggressive user