Nutzen Sie das folgende Bash-Skript, um die HTTP-Response-Zeit zu testen:

#!/usr/bin/env bash
DEFAULT_URL="<http://wattro.io>"
URL="${1:-$DEFAULT_URL}"
TOTAL_RUNS=10
TIME_INTERVAL=6  # 60 Sekunden / 10 Messungen = 6 Sekunden Abstand

declare -a times

perform_curl() {
    curl -o /dev/null -s -w "%{time_total}\n" "$URL"
}

echo "Teste URL $URL über $((TOTAL_RUNS*TIME_INTERVAL)) Sekunden"
initial_time=$(perform_curl)
echo "Initiale Messung: $initial_time Sekunden (wird nicht gewertet)"

for ((i=1; i<=TOTAL_RUNS; i++))
do
    TIME_TOTAL=$(perform_curl)
    times+=("$TIME_TOTAL")
    echo "Messung $i: $TIME_TOTAL Sekunden"
    sleep $TIME_INTERVAL
done

sorted_times=($(printf "%s\n" "${times[@]}" | sort -n))

min=${sorted_times[0]}
max=${sorted_times[-1]}
length=${#sorted_times[@]}
mid=$((length / 2))

if (( length % 2 == 0 )); then
    median=$(awk "BEGIN {print (${sorted_times[mid-1]} + ${sorted_times[mid]}) / 2}")
else
    median=${sorted_times[mid]}
fi

min_ms=$(awk "BEGIN {print int($min * 1000)}")
median_ms=$(awk "BEGIN {print int($median * 1000)}")
max_ms=$(awk "BEGIN {print int($max * 1000)}")

echo "Minimum: ${min_ms} ms"
echo "Median:  ${median_ms} ms (sollte kleiner 100ms sein)"
echo "Maximum: ${max_ms} ms (sollte kleiner 200ms sein)"