zoukankan      html  css  js  c++  java
  • 【转载】ltp压力测试结果分析脚本

    随笔- 8  文章- 0  评论- 0 

    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%% ",('$use'+'$system')}'`
    echo "CPU使用率为:$cpuuse"
    }
    memuse()
    {
    echo "==============="
    mem=`(sar -r -f /home/ltp/sar.out| tail -n 1 |awk '{printf "%.2f%% ", $4}')`
    echo "内存使用率为:$mem"
    }
    swapuse()
    {
    echo "==============="
    swap=`(sar -S -f /home/ltp/sar.out|tail -n 1|awk '{printf "%.2ff%% ", $4}')`
    echo "swap平均使用率为:$swap"
    }
    success()
    {
    echo "==============="
    pass=`(grep PASS /home/ltp/ltp.log | wc -l)`
    succ=`awk 'BEGIN{printf "%.2f%% ",('$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不熟练。

  • 相关阅读:
    ex3多类问题和NN中的前向传播
    逻辑关系下的NN应用
    NN-Neural Network
    ex2:逻辑回归及正则条件下的练习
    Overfitting&Underfitting Problems
    操作系统内存管理之虚拟内存
    C陷阱与缺陷读书笔记(三)
    操作系统常见面试题
    计算机网络常考面试题总结
    堆及堆排序
  • 原文地址:https://www.cnblogs.com/xuanbjut/p/12122724.html
Copyright © 2011-2022 走看看