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
 
posted @ 2023-03-13 17:30  Rain009  阅读(48)  评论(0)    收藏  举报