57 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
	
| #!/bin/bash
 | |
| 
 | |
| function test_urls {
 | |
|   local urls=(${URLS//,/ })
 | |
|   local username=$USERNAME
 | |
|   local password=$PASSWORD
 | |
|   for url in "${urls[@]}"; do
 | |
|     curl -u "$username:$password" "$url"
 | |
|   done
 | |
| }
 | |
| 
 | |
| function run_apache_bench {
 | |
|   local urls=(${URLS//,/ })
 | |
|   local username=$USERNAME
 | |
|   local password=$PASSWORD
 | |
|   local requests=$REQUESTS
 | |
|   local concurrency=$CONCURRENCY
 | |
|   local log_file="/logs/authenticated.log"
 | |
|   for url in "${urls[@]}"; do
 | |
|     ab -n "$requests" -c "$concurrency" -A "$username:$password" "$url" | tee -a "$log_file"
 | |
|   done
 | |
| }
 | |
| 
 | |
| function check_ttfb_and_log {
 | |
|   local urls=(${URLS//,/ })
 | |
|   local username=$USERNAME
 | |
|   local password=$PASSWORD
 | |
|   local log_file="/logs/authenticated.csv"
 | |
|   local total_ttfb sum_ttfb mean_ttfb http_code
 | |
|   echo "URL,Username,HTTP Code,Mean TTFB" > "$log_file"
 | |
|   for url in "${urls[@]}"; do
 | |
|     total_ttfb=0
 | |
|     for i in {1..5}; do
 | |
|       response=$(curl -o /dev/null -s -w "%{http_code},%{time_starttransfer}\n" -u "$username:$password" "$url")
 | |
|       http_code=$(echo "$response" | cut -d',' -f1)
 | |
|       ttfb=$(echo "$response" | cut -d',' -f2)
 | |
|       total_ttfb=$(echo "$total_ttfb + $ttfb" | bc)
 | |
|     done
 | |
|     sum_ttfb=$total_ttfb
 | |
|     mean_ttfb=$(echo "scale=3; $sum_ttfb / 5" | bc)
 | |
|     echo "$url,$username,$http_code,$mean_ttfb" | tee -a "$log_file"
 | |
|   done
 | |
| }
 | |
| 
 | |
| function prepare_log_file {
 | |
|   local log_file="/logs/authenticated.csv"
 | |
|   > "$log_file"
 | |
|   mkdir -p $(dirname "$log_file")
 | |
|   touch "$log_file"
 | |
| }
 | |
| 
 | |
| prepare_log_file
 | |
| 
 | |
| test_urls
 | |
| run_apache_bench
 | |
| check_ttfb_and_log
 |