#!/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