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)"