#!/bin/bash # Rate limiting test - burst requests to trigger throttle SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "$SCRIPT_DIR/../config.sh" OUT="$OUT/rate_limit" mkdir -p "$OUT" echo '=== RATE LIMITING TESTS ===' | tee "$OUT/summary.txt" echo 'Sending 40 rapid requests to / ...' | tee -a "$OUT/summary.txt" declare -A counts for i in $(seq 1 40); do code=$(curl -sk -o /dev/null -w '%{http_code}' --max-time 5 "$TARGET/") counts[$code]=$(( ${counts[$code]:-0} + 1 )) done for code in "${!counts[@]}"; do echo " HTTP $code: ${counts[$code]} times" | tee -a "$OUT/summary.txt" done echo '' | tee -a "$OUT/summary.txt" echo 'Sending 20 rapid POST to API /encrypt ...' | tee -a "$OUT/summary.txt" declare -A acounts for i in $(seq 1 20); do code=$(curl -sk -o /dev/null -w '%{http_code}' --max-time 5 -X POST -H 'Content-Type: application/json' -d '{"data":"test","algorithm":"classical"}' "$API_TARGET/encrypt") acounts[$code]=$(( ${acounts[$code]:-0} + 1 )) done for code in "${!acounts[@]}"; do echo " HTTP $code: ${acounts[$code]} times" | tee -a "$OUT/summary.txt" done cat "$OUT/summary.txt"