最近工作性质发生了改变,在做操作系统方面的测试。接手的第一个任务是做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不熟练。

ltp压力测试结果分析脚本的更多相关文章

  1. 【转载】ltp压力测试结果分析脚本

    博客园 首页 新随笔 联系 管理 订阅 随笔- 8  文章- 0  评论- 0  ltp压力测试结果分析脚本   最近工作性质发生了改变,在做操作系统方面的测试.接手的第一个任务是做ltp stres ...

  2. [转贴]LTP--linux稳定性测试 linux性能测试 ltp压力测试 ---IBM 的 linux test project

    https://blog.csdn.net/melody157398/article/details/24354415   LTP--linux稳定性测试 linux性能测试 ltp压力测试 ---I ...

  3. LTP--linux稳定性测试 linux性能测试 ltp压力测试 ---IBM 的 linux test project

    LTP--linux稳定性测试 linux性能测试 ltp压力测试 ---IBM 的 linux test project Peter盼 2014-04-23 11:25:49  20302  收藏  ...

  4. LTP--linux稳定性测试 linux性能测试 ltp压力测试 内核更新 稳定性测试

    LTP--linux稳定性测试 linux性能测试 ltp压力测试 zhangzj1030关注14人评论33721人阅读2011-12-09 12:07:45   说明:在写这篇文章之前,本人也不曾了 ...

  5. LTP--linux稳定性测试 linux性能测试 ltp压力测试 ltp-pan

    LTP--linux稳定性测试 linux性能测试 ltp压力测试 zhangzj1030关注14人评论33710人阅读2011-12-09 12:07:45   说明:在写这篇文章之前,本人也不曾了 ...

  6. Monkey进行压力测试定位问题分析

    Monkey测试的log分析,我们可以通过几个关键词来判断测试是否通过.   分析log方法一(粗糙一点): 1)Monkey finished打开LOG,查看log的最下端,是否有类似以下字段:## ...

  7. Android App 压力测试 monkeyrunner

    Android App 压力测试 第一部分 背景 1. 为什么要开展压力测试? 2. 什么时候开展压力测试?第二部分 理论 1. 手工测试场景 2. 自动测试创建 3. Monkey工具 4. ADB ...

  8. jmeter简单得压力测试

    Jmeter教程 简单的压力测试 Jmeter是一个非常好用的压力测试工具.  Jmeter用来做轻量级的压力测试,非常合适,只需要十几分钟,就能把压力测试需要的脚本写好. 阅读目录 什么是压力测试 ...

  9. 工具使用-----Jmeter教程 简单的压力测试

    摘抄于http://www.cnblogs.com/TankXiao/p/4059378.html 以下是英文版的,中文版的也差不多的 Jmeter是一个非常好用的压力测试工具.  Jmeter用来做 ...

随机推荐

  1. flask汇总

    flask框架 蓝图 随着flask程序越来越复杂,我们需要对程序进行模块化的处理,之前学习过python的模块化管理,于是针对一个简单的flask程序进行模块化处理 Blueprint概念 简单来说 ...

  2. vscode Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client

    vscode 连接 mysql 时出现这个错误 alter user 'root'@'localhost' identified with mysql_native_password by 'pass ...

  3. latex学习笔记----数学公式

    https://www.jianshu.com/p/d7c4cf8dc62d 1.数学公式在  \(  和  \)之间,$和$之间,或者\begin{math}和\end{math}之间 2.对于较大 ...

  4. 关于ebay平台接口(php)对接示例

    获取订单接口示例 public function importEbayOrder(){ set_time_limit(0); if(empty( $this->_ShopApiEbay-> ...

  5. python爬虫破解带有CryptoJS的aes加密的反爬机制

    发现问题 在一次偶然中,在爬取某个公开网站(非商业型网站)时,老方法,打开调试工具查看请求方式,请求拦截,是否是异步加载,不亦乐乎,当我以为这个网站非常简单的时候,发现二级网页的地址和源码不对应 Aj ...

  6. 吴裕雄--天生自然 JAVA开发学习:抽象类

    public abstract class Employee { private String name; private String address; private int number; pu ...

  7. springMVC的注解@PathVariable是什么?详情及用法解析

    在路由中定义变量规则后,通常我们需要在处理方法(也就是@RequestMapping注解的方法)中获取这个URL变量的具体值,并根据这个值(例如用户名)做相应的操作,Spring MVC提供的@Pat ...

  8. K 破忒头的匿名信(ac自动机+小dp)

    题:https://ac.nowcoder.com/acm/contest/4010/K 题意:用一些模式串凑成一个目标串,每个模式串有消耗,问组合的最小消耗,或不能组成输出-1: 分析:典型的AC自 ...

  9. 拿到新linux服务器,从配置环境到跑起项目的部署流程

    今早翻开手机看到某云一条广告Linux1 核 2 GB 1 Mbps服务器10元一个月,正巧最近在搞linux,于是下单了一台2个月20. 上班来到公司后,借空闲时间一顿研究,一波骚操作配置后,浏览器 ...

  10. Flink(五) —— DataStream API

    Source 从自定义的集合中读取数据 /** * 从集合中读取数据 */ def readDataFromCollection(): Unit = { val env = StreamExecuti ...