#!/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)"