linux shell 分析 ab 测压命令

1 分析文档
 
#!/bin/bash
line_num=3
count_num=0
Concurrencyl=0
Timetakenl=0
Completerequestsl=0
Failedrequestsl=0
Requestspersecondl=0
Timeperrequestl=0
Timeperrequestacrossl=0
Transferratel=0
file_name="value.tmp"
result_file="result.csv"

if [ -f $file_name ]; then 
   rm  $file_name
fi

if [ -f $result_file ]; then
    rm  $result_file
fi
 echo "test project","testurl","Concurrent","time token","Completerequests","failed","per time(ms)","thread last time per time(ms)","Concurrent request last time(ms)","network (KB)">> $result_file
     
while read line
do
 if [ -z "$line" ] ; then
			echo $Timetakenl
			echo $Completerequestsl
			
			echo "一轮已经测试完毕"
			echo Average,,,$(echo "$Timetakenl / $line_num" |bc -l),$(echo "$Completerequestsl / $line_num" |bc -l),$(echo "$Failedrequestsl / $line_num" |bc -l),$(echo "$Requestspersecondl / $line_num" |bc -l),$(echo "$Timeperrequestl / $line_num" |bc -l),$(echo "$Timeperrequestacrossl / $line_num" |bc -l),$(echo "$Transferratel / $line_num" |bc -l)>> $result_file
			echo "">> $result_file
			let Concurrencyl=0
			let Timetakenl=0
			let Completerequestsl=0
			let Failedrequestsl=0
			let Requestspersecondl=0
			let Timeperrequestl=0
			let Timeperrequestacrossl=0
			let Transferratel=0
 else 
		   echo $line
		   #s=$line | cut -d ":" -f2 
		   #s=$line
		   OLD_IFS="$IFS"
		   IFS="*"
		   arr=($line)
		   IFS="$OLD_IFS"
		   s=${arr[1]}
		   test_project=${arr[0]}
		   #echo $s
		   #echo $test_project
		   if [ -f $file_name ];then 
				eval '$s'>$file_name    
		   else
				touch $file_name 
				eval '$s'>$file_name    
		   fi	
		   
		    Concurrency=$(grep  "Concurrency Level" $file_name | awk '{print$3}')
			Timetaken=$(grep  "Time taken for tests" $file_name | awk '{print$5}')
			Completerequests=$(grep  "Complete requests" $file_name | awk '{print$3}')
			Failedrequests=$(grep  "Failed requests" $file_name | awk '{print$3}')
			Requestspersecond=$(grep  "Requests per second" $file_name | awk '{print$4}')
			Timeperrequest=$(grep  "Time per request:" $file_name| sed 1q | awk '{print$4}')
			Timeperrequestacross=$(grep  "mean, across all concurrent requests" $file_name | awk '{print$4}')
			Transferrate=$(grep  "Transfer rate" $file_name | awk '{print$3}')
			
			echo $test_project,$s,$Concurrency,$Timetaken,$Completerequests,$Failedrequests,$Requestspersecond,$Timeperrequest,$Timeperrequestacross,$Transferrate >> $result_file
		
			Timetakenl=$(echo "$Timetakenl + $Timetaken" |bc -l)
			Completerequestsl=$(echo "$Completerequestsl + $Completerequests" |bc -l)
			Failedrequestsl=$(echo "$Failedrequestsl + $Failedrequests" |bc -l)
			Requestspersecondl=$(echo "$Requestspersecondl + $Requestspersecond" |bc -l)
			Timeperrequestl=$(echo "$Timeperrequestl + $Timeperrequest" |bc -l)	
			Timeperrequestacrossl=$(echo "$Timeperrequestacrossl + $Timeperrequestacross" |bc -l)
			Transferratel=$(echo "$Transferratel + $Transferrate" |bc -l)
 fi	
done <key.txt
echo "操作完毕"












2 测试文件
firstpage*ab  -c 100 -n 1000  http://192.168.0.219/
firstpage*ab  -c 100 -n 1001  http://192.168.0.219/
firstpage*ab  -c 100 -n 1002  http://192.168.0.219/

firstpage*ab  -c 100 -n 1003  http://192.168.0.219/
firstpage*ab  -c 100 -n 1004  http://192.168.0.219/
firstpage*ab  -c 100 -n 1005  http://192.168.0.219/


执行脚本即可得到你希望的结果

猜你喜欢

转载自annan211.iteye.com/blog/2212900
今日推荐