asi / deploy /scripts /load-test.sh
srossi93's picture
chore: Add Prometheus and Grafana configuration, health check, and load test scripts
333517e
raw
history blame
1.13 kB
#!/bin/bash
# Load test script using curl (simple version)
# For more comprehensive testing, use k6 or wrk
DURATION=${1:-30}
CONCURRENCY=${2:-10}
URL=${3:-"http://localhost:8000"}
echo "πŸš€ Starting load test..."
echo " Duration: ${DURATION}s"
echo " Concurrency: ${CONCURRENCY}"
echo " URL: ${URL}"
echo ""
# Simple load test using parallel curl requests
end=$((SECONDS + DURATION))
count=0
errors=0
while [ $SECONDS -lt $end ]; do
for i in $(seq 1 $CONCURRENCY); do
(
response=$(curl -sf -o /dev/null -w "%{http_code}" "$URL" 2>/dev/null)
if [ "$response" != "200" ]; then
echo "error" >> /tmp/loadtest_errors.txt
fi
) &
done
wait
count=$((count + CONCURRENCY))
done
if [ -f /tmp/loadtest_errors.txt ]; then
errors=$(wc -l < /tmp/loadtest_errors.txt)
rm /tmp/loadtest_errors.txt
fi
echo ""
echo "πŸ“Š Results:"
echo " Total requests: $count"
echo " Errors: $errors"
echo " Success rate: $(echo "scale=2; ($count - $errors) * 100 / $count" | bc)%"
echo " Requests/sec: $(echo "scale=2; $count / $DURATION" | bc)"