qmk/docker/auth-bench/run-ab.sh

41 lines
1.1 KiB
Bash

#!/bin/bash
function prepare_log_file {
local log_file="/logs/authenticated.csv"
> "$log_file"
mkdir -p $(dirname "$log_file")
touch "$log_file"
}
function run_apache_bench_and_check_ttfb {
local urls=(${URLS//,/ })
local username=$USERNAME
local password=$PASSWORD
local requests=$REQUESTS
local concurrency=$CONCURRENCY
local log_file="/logs/authenticated.csv"
local ab_summary
local total_ttfb=0
local ttfb=0
echo "URL, Average TTFB, AB Mean Time per Request" | tee "$log_file"
for url in "${urls[@]}"; do
total_ttfb=0
ab_summary=$(ab -n "$requests" -c "$concurrency" -A "$username:$password" "$url" 2>&1 | grep "Time per request" | head -1)
ab_mean_time_per_request=$(echo "$ab_summary" | awk '{print $4 " " $5}')
for i in {1..5}; do
ttfb=$(curl -o /dev/null -s -w "%{time_starttransfer}\n" -u "$username:$password" "$url")
total_ttfb=$(echo "$total_ttfb + $ttfb" | bc)
done
local mean_ttfb=$(echo "scale=3; $total_ttfb / 5" | bc)
echo "$url, $mean_ttfb, $ab_mean_time_per_request" | tee -a "$log_file"
done
}
prepare_log_file
run_apache_bench_and_check_ttfb