ltp壓力測試結果分析腳本


ltp壓力測試結果分析腳本

 

最近工作性質發生了改變,在做操作系統方面的測試。接手的第一個任務是做ltp stress。測試內核穩定性。

做完之后會結果進行統計分析。因為統計的內容比較多,都是通過shell命令行進行操作。於是編寫了一個簡單的shell腳本。

具體腳本內容如下:

#!/bin/bash

CASENUM=0 #定義了一個全局變量
passnum()
{
echo "=============="
pass=`grep PASS /home/ltp/ltp.log | wc -l`#統計執行用例pass的次數。
echo "pass的用例個數 $pass"
}
failnum()
{
echo "=============="
fail=`grep FAIL /home/ltp/ltp.log | wc -l`#統計執行用例fail的次數
echo "fail的用例個數 $fail"
}
casenum()
{
echo "=============="
pass=`grep PASS /home/ltp/ltp.log | wc -l`
fail=`grep FAIL /home/ltp/ltp.log | wc -l`
let CASENUM=($pass+$fail)#統計總的執行用例的次數(這里可以進行優化)
echo "總的用例個數 $CASENUM"
}
cpuload()
{
echo "==============="
ldavg1=`(sar -q -f /home/ltp/sar.out| tail -n 1|awk '{print $4}')`
echo "ladvg_1:$ldavg1"

ldavg5=`(sar -q -f /home/ltp/sar.out| tail -n 1|awk '{print $5}')`
echo "ladvg_5 $ldavg5 "

ldavg15=`(sar -q -f /home/ltp/sar.out|tail -n 1|awk '{print $6}')`
echo "ldavg_15 $ldavg15"
}

cpuuse()
{
echo "==============="
#use=`(sar -u -f /home/ltp/sar.out| sed -n '$p' |awk '{print $3}')`
use=`sar -u -f /home/ltp/sar.out| tail -n 1|awk '{print $3}'`
#system=`(sar -u -f /home/ltp/sar.out| sed -n "$p" |awk '{print $5}')`#寫sed命令的時候一定得注意用單引號編寫,sed -n "$p" 這種寫法錯誤,導致無法找到對應數據。
system=`(sar -u -f /home/ltp/sar.out| tail -n 1 |awk '{print $5}')`
cpuuse=`awk 'BEGIN{printf "%.2f%%\n",('$use'+'$system')}'`
echo "CPU使用率為:$cpuuse"
}
memuse()
{
echo "==============="
mem=`(sar -r -f /home/ltp/sar.out| tail -n 1 |awk '{printf "%.2f%%\n", $4}')`
echo "內存使用率為:$mem"
}
swapuse()
{
echo "==============="
swap=`(sar -S -f /home/ltp/sar.out|tail -n 1|awk '{printf "%.2ff%%\n", $4}')`
echo "swap平均使用率為:$swap"
}
success()
{
echo "==============="
pass=`(grep PASS /home/ltp/ltp.log | wc -l)`
succ=`awk 'BEGIN{printf "%.2f%%\n",('$pass'/'$CASENUM')*100}'`
echo "成功比率為:$succ"
}

failcase()
{
echo "==============="
failcase=`grep FAIL /home/ltp/ltp.log |sort|uniq|wc -l`
echo "faicase總數為: $failcase"
grep FAIL /home/ltp/ltp.log |sort|uniq>/home/ltp/failcase.txt
echo "具體的fail列表在生成的/home/ltp/failcase.txt文件中請查看是否存在重復"

}

passnum
failnum
casenum
cpuload
cpuuse
memuse
swapuse
success
failcase

在調試腳本的時候,總結了以下幾個小點:

1.需要的到某個命令的返回值,定義一個變量等於這個命令,但是這邊命令必須用``(大鍵盤數字1左邊的那個按鈕反單引號)擴住,否則就不執行這個命令

2.編寫一個函數之后,一定要在下邊寫一下執行函數名稱,否則看不到返回結果

3.寫sed命令的時候一定得注意用單引號編寫,sed -n "$p" 這種寫法,導致無法找到對應數據。應該寫為sed -n '$p'也是長知識了,這個經實踐發現寫成

sed -n"2,$p"這種格式是提示不對的,然后改成單引號之后就好了,還是sed不熟練


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM