shell使用-ab压测时,出现error停止,将报告写入到log里
#!/bin/bash
#清空存储文件内容
true > file2.log
true > Mail_test.docx
echo "==================work begin=================="
#设置传参
echo -n "please enter maximum num1 for api: "
read num1
echo -n "please enter initial num2 for api: "
read num2
echo -n "please enter Concurrency Level: "
read Level
echo -n "please enter api for test: "
read api
#设置循环
num=num2
for ((num=num2;num<num1;num+10));do
num=$(($num+10))
echo "=========================ab_test_$num=========================" >> file2.log 2>&1
ab -n $num -c $Level -k $api >> file2.log 2>&1
free -m -s 1 >>file2.log 2&1
#读取log内容设置free执行时间
tail -f file2.log | while read line
do
cat $line | grep "(longest request)"
if [ #? -eq 0 ]; then
echo -e '\003'
fi
done
echo "=========================done=========================" >> file2.log 2>&1
judge_1=`cat file2.log | grep "Failed requests: 0"`
if [ ! -n "$judge_1" ];then
break
fi
done
egrep "ab_test*|Server Hostname|Document Path|Concurrency Level|Time taken for tests|Complete requests|Failed requests|Write errors|Total transferred|HTML transferred|Requests per second|Time per request|Time per request|Transfer rate|done" file2.log\
> /home/mayuanli/test/Mail_test.docx
echo "mail-Test_result"|mutt -s "Result" demaria@demaria.com -a /home/demaria/test/Mail_test.docx
echo "==================work done=================="
exit
浙公网安备 33010602011771号