Spaces:
Running
Running
| # 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)" | |