123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #!/usr/bin/env bash
- # Configuration
- URL="https://api.cloud.sciphi.ai/v3/health"
- TOTAL_REQUESTS=60
- SLEEP_INTERVAL=0.05
- REQUIRED_429_COUNT=20
- # Initialize counters
- count_429=0
- count_total=0
- # Function to handle exit codes
- check_exit_status() {
- if [ $count_429 -ge $REQUIRED_429_COUNT ]; then
- echo "✅ Test passed: Got $count_429 rate limits (429s), which meets the minimum requirement of $REQUIRED_429_COUNT"
- exit 0
- else
- echo "❌ Test failed: Only got $count_429 rate limits (429s), which is less than the required $REQUIRED_429_COUNT"
- exit 1
- fi
- }
- # Trap Ctrl+C and call check_exit_status
- trap check_exit_status INT
- echo "Starting rate limit test for $URL"
- echo "Target: At least $REQUIRED_429_COUNT rate limits (HTTP 429)"
- for ((i=1; i<=TOTAL_REQUESTS; i++)); do
- RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" "$URL")
- count_total=$((count_total + 1))
- # Color coding for different responses
- if [ "$RESPONSE" = "429" ]; then
- count_429=$((count_429 + 1))
- echo -e "\033[33mRequest $i: HTTP $RESPONSE (Rate limit) - Total 429s: $count_429\033[0m"
- elif [ "$RESPONSE" = "200" ]; then
- echo -e "\033[32mRequest $i: HTTP $RESPONSE (Success)\033[0m"
- else
- echo -e "\033[31mRequest $i: HTTP $RESPONSE (Error)\033[0m"
- fi
- sleep $SLEEP_INTERVAL
- done
- # Check final results
- check_exit_status
|