• 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不熟练

  • 相关阅读:
    asp.net core 集成JWT(一)
    Microsoft.Extensions.DependencyInjection中的Transient依赖注入关系,使用不当会造成内存泄漏
    Microsoft.Extensions.DependencyInjection的Singleton依赖注入关系,只是对于同一个ServiceProvider是单例的
    ASP.NET Core MVC中,如何将视图文件生成的html代码通过字符串返回
    SpringBoot魔法堂:说说带智能提示的spring-boot-starter
    Maven魔法堂:安装Oracle JDBC Driver依赖的那些坑
    TypeScript魔法堂:函数类型声明其实很复杂
    TypeScript魔法堂:枚举的超实用手册
    C#获取文件与文件夹默认图标(2006-3-22 新增示例代码与程序)
    【学习笔记】Team Explorer for Microsoft Visual Studio2015 安装时发生严重错误
  • 原文地址:https://www.cnblogs.com/xuanbjut/p/12155951.html
Copyright © 2020-2023  润新知