收集Linux系統資源,導入到LoadRunner測試結果

發表于:2009-04-22來源:作者:點擊數: 標簽:loadrunnerloadRunnerLoadrunnerLoadRunnerlinux
LoadRunner 的結果分析器自帶數據導入功能,以下腳本即可辦到: 收集數據 == $ performanceMonitor.sh run 保存到CSV文件 == $ performanceMonitor.sh csv YYYYMMDD 腳本代碼: LOG=/home/higkoo/PerfMon/ SLEEP=10 HDD=2 HTYPE=$(uname -s) genStat() { now
LoadRunner的結果分析器自帶數據導入功能,以下腳本即可辦到:
    收集數據 == $ performanceMonitor.sh run    保存到CSV文件 == $ performanceMonitor.sh csv YYYYMMDD
腳本代碼:
LOG=/home/higkoo/PerfMon/
SLEEP=10
HDD=2

HTYPE=$(uname -s)

genStat()
{
    now=$( date +%S )
    while [ "$now" -ne "30" ]
    do
        sleep 1
        now=$( date +%S )
    done
    while :;
    do
        dat=$(date +%Y%m%d,%H:%M:%S)
        day=$(date +%Y%m%d )
        iostat -x 1 2 | sed -e"s/^\(.*\)/$dat \1/" | grep "[0-9]\." | tail -${HDD} >> ${LOG}/io.${day}.log &
        vmstat 1 2 | awk "{ print \"$dat\", \$0 }" | tail -1 >> ${LOG}/vm.${day}.log &
        netstat -i | grep -v Iface | awk "{ print \"$dat\", \$0 }" >> ${LOG}/netstat.${day}.log &
        uptime >> ${LOG}/uptime.${day}.log &
        sleep $SLEEP
    done
}

mkcsv()
{
    dat=$1

    if [ "$HTYPE" == "SunOS" ]
    then
   
        #IO CSV
        echo date,time,device,r/s,w/s,kr/s,kw/s,wait,actv,wsvc_t,asvc_t,%w,%b > ${LOG}/io.${dat}.csv
        cat ${LOG}/io.${dat}.log | egrep -v "extended|device" | awk '{ OFS=","; print $1,$12,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11 }' >> ${LOG}/io.${dat}.csv
        #VM csv
        echo date,time,k[r],k[b],k[w],swap,free,pg[re],pg[mf],pg[pi],pg[po],pg[fr],pg[de],pg[sr],m0,m1,m2,m1,interupt,syscall,ctxswt,cpu[us],cpu[sys],cpu[idl] > ${LOG}/vm.${dat}.csv
        cat ${LOG}/vm.${dat}.log | awk '{for(l=1;l<23;l++) { printf("%s,", $l) }; print $23 }' >> ${LOG}/vm.${dat}.csv
        #uptime csv
        echo time,users,5min,10min,15min > ${LOG}/uptime.${dat}.csv
        cat ${LOG}/uptime.${dat}.log | awk '{ OFS=","; if ( $6 ~ /^[hm][ri]/) { print $1,$7,$11$12$13 } else if ( $6 ~/^user/) { print $1,$5,$9$10$11} else { print $1,$6,$10$11$12} }' >> ${LOG}/uptime.${dat}.csv

    elif [ "$HTYPE" == "Linux" ]
    then
        #IO CSV
        echo "date,time,device,rrqm/s,wrqm/s,r/s,w/s,rsec/s,wsec/s,rkB/s,wkB/s,avgrq-sz,avgqu-sz,await,svctm,%util" > ${LOG}/io.${dat}.csv
        cat ${LOG}/io.${dat}.log | egrep -v "extended|device" | awk '{for(l=1;l<15;l++) { printf("%s,", $l) }; print $15}' >> ${LOG}/io.${dat}.csv
        #VM csv
        echo date,time,r,b,swp,free,buff,cache,si,so,bi,bo,in,cs,us,sy,id,wa > ${LOG}/vm.${dat}.csv
        cat ${LOG}/vm.${dat}.log | awk '{for(l=1;l<17;l++) { printf("%s,", $l) }; print $17 }' >> ${LOG}/vm.${dat}.csv
        #uptime csv
        echo time,users,5min,10min,15min > ${LOG}/uptime.${dat}.csv
        cat ${LOG}/uptime.${dat}.log | awk '{ OFS=","; if ( $4 ~ /^min/) { print $1,$5,$9$10$11 } else { print $1,$4,$8$9$10} }' >> ${LOG}/uptime.${dat}.csv
    else

        echo "Hmmm - An unexpected error oclearcase/" target="_blank" >ccured. Have you change the host type?"
   
    fi

}

if [ "$HTYPE" != "SunOS" -a "$HTYPE" != "Linux" ]
then
    echo "Error - This script has no knowlege of the System $HTYPE"
    echo "        You will need to do some tweaking."
    exit
fi

case $1 in

    run)
        genStat
        ;;
    csv)
        if [ $# -lt 2 ]
        then
            echo "Error - You must supply a date in the form YYYYMMDD"
            exit
        fi
        mkcsv $2
        ;;
    *)
        echo -e ":::: Usage ::::"
        echo -e "$0 run             : Collect stats"
        echo -e "$0 csv YYYYMMDD    : Generate CSV from stats"
        echo ""
        ;;
esac腳本可能需要根據實際情況稍作修改,然后將保存的數據導入到LoadRunner里就可以合成到測試結果中了:

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97