zoukankan      html  css  js  c++  java
  • 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%% ",('$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不熟练

  • 相关阅读:
    js遍历table和gridview
    斑马条码打印机通过js post 打印
    两个数据库通过DataTable实现差异传输
    Python2.X 和 Python3.X的区别
    Python核心编程(2)—— 基础(续)
    Python核心编程—— 起步(续)
    a标签下的div,在浏览器, 怎么会跑到a标签外面?
    功能测试
    Markdown初使用
    UI分层中使用PageFactory
  • 原文地址:https://www.cnblogs.com/xuanbjut/p/12155951.html
Copyright © 2011-2022 走看看