其他分享
首页 > 其他分享> > 原创-性能测试篇-lmbench测试自动化脚本优化

原创-性能测试篇-lmbench测试自动化脚本优化

作者:互联网

这个是运行的shell脚本,命名 test_lmbench.sh 

#!/bin/sh

##################################################
# 测试标题:lmbench测试 
# 测试目的:测试简单的系统调用时间、shell命令启动时间
#           系统信号处理时间、统计2p/16K的上下文切换
#           性能、16p/64k的上下文切换性能、0K/10K文件
#           创建时间、0K/10K文件删除时间
# 预期结果:显示所有测试项数据
###################################################
# 方法:
# 将脚本复制到解压后的lmbench文件夹里
# ./test_lmbench.sh 
#
#
##################################################
#测试标题
test_title="lmbench测试 标识:78 79 80 81 82 83"
#预期结果
expect_result="显示系统调用时间、shell命令启动时间系统信号处理时间、统计2p/16K的上下文切换性能、16p/64k的上下文切换性能、0K/10K文件创建时间、0K/10K文件删除时间"
#结果文件存放路径
result_path=./

#打印日期时间
echo date >> ${result_path}test_lmbench_result.txt
#空三行
echo -e "\n" >> ${result_path}test_lmbench_result.txt
#打印标题
echo ${test_title} >> ${result_path}test_lmbench_result.txt
#打印预期结果
echo ${expect_result} >> ${result_path}test_lmbench_result.txt
#空一行
echo -e >> ${result_path}test_lmbench_result.txt
 
#执行命令
make results
#进入results目录
cd results/

#执行make命令
make > lmbench_tmp.txt
#退出results目录
cd ..
#利用python处理数据
#添加可执行权限
chmod +x ./test_lmbench.py
#运行python脚本
./test_lmbench.py
echo -e "\n" >> ${result_path}test_lmbench_result.txt

#开发须知
#最后一定要将添加可执行权限后压缩 

接下来是python脚本,负责数据处理

#!/usr/bin/python
# -*- coding: utf-8 -*-

############################################
# 配合test_lmbench.sh文件
# 目的:处理运行lmbench生成的summary.out文件
#       该文件在results文件夹里
###########################################
#
#
############################################

#引入模块
import sys,commands,subprocess

#shell启动时间
#sh proc 行数
shproc_row=22
#sh proc 列数
shproc_column=13

#signal handle
#行数
sighndl_row=22
#列数
sighndl_column=10

#2p/16k ctxsw (上下文切换性能)
#行数
ctxsw_2p16k_row=67
#列数
ctxsw_2p16k_column=4

#16p/64k ctxsw (上下文切换性能)
#行数
ctxsw_16p64k_row=67
#列数
ctxsw_16p64k_column=9

#0k create(0k文件创建时间)
#行数
create_0k_row=94
#列数
create_0k_column=3
#10k create(10K文件创建时间)
#行数
create_10k_row=94
#列数
create_10k_column=5
#0k delete(0k文件删除时间)
#行数
delete_0k_row=94
#列数
delete_0k_column=4
#10k delete(10k文件删除时间)
#行数
delete_10k_row=94
#列数
delete_10k_column=6
#打开数据文件
file=open('results/lmbench_tmp.txt','r')
lines = file.readlines()
#获取shproc数据所在行内容
line_shproc = lines[shproc_row]
#打印shproc行数据
print line_shproc
#获取shell启动时间 (sh proc)
line_shproc_data=line_shproc.split()[shproc_column]
#打印启动时间 单位为ms
print line_shproc_data

#获取sig handle数据所在行内容
line_sighndl=lines[sighndl_row]
#打印sighndl数据所在行内容
print line_sighndl
#获取sig hndl的数据
line_sighndl_data=line_sighndl.split()[sighndl_column]
#打印sig hndl数据 (信号处理时间) 单位为ms
print line_sighndl_data

#获取2p/16k数据所在行内容
line_ctxsw_2p16k=lines[ctxsw_2p16k_row]
#打印2p/16k数据所在行内容
print line_ctxsw_2p16k
#获取2p/16k数据
line_ctxsw_2p16k_data=line_ctxsw_2p16k.split()[ctxsw_2p16k_column]
#打印2p/16k数据
print line_ctxsw_2p16k_data

#获取16p64k数据所在行内容
line_ctxsw_16p64k=lines[ctxsw_16p64k_row]
#打印16p64k数据所在行内容
print line_ctxsw_16p64k
#获取16p64k数据
line_ctxsw_16p64k_data=line_ctxsw_16p64k.split()[ctxsw_16p64k_column]
#打印16p64k数据
print line_ctxsw_16p64k_data

#获取0k create数据所在行内容
line_create_0k=lines[create_0k_row]
#打印0k create数据所在行内容
print line_create_0k
#获取0k create数据
line_create_0k_data=line_create_0k.split()[create_0k_column]
#打印0k create 数据
print line_create_0k_data

#获取10k create数据所在行内容
line_create_10k=lines[create_10k_row]
#打印10k create数据所在行内容
print line_create_10k
#获取10k create数据
line_create_10k_data=line_create_10k.split()[create_10k_column]
#打印10k create数据
print line_create_10k_data

#获取0k delete 数据所在行内容
line_delete_0k=lines[delete_0k_row]
#打印0k delete 数据所在行内容
print line_delete_0k
#获取0k delete 数据
line_delete_0k_data=line_delete_0k.split()[delete_0k_column]
#打印0k delete数据
print line_delete_0k_data

#获取10k delete 数据所在行内容
line_delete_10k=lines[delete_10k_row]
#打印10k delete 数据所在行内容
print line_delete_10k
#获取10k delete 数据
line_delete_10k_data=line_delete_10k.split()[delete_10k_column]
#打印10k delete数据
print line_delete_10k_data

#关闭文件
file.close()


#导出文本到test_lmbench_result.txt
#获取日期时间
#datetime=commands.getoutput('date')
fw=open("./test_lmbench_result.txt","a+")
fw.write("\r\n"+"数据结果为:\r\n")
fw.write("sh proc:"+line_shproc_data+"\r\n")
fw.write("sighndl:"+line_sighndl_data+"\r\n")
fw.write("2p/16k:"+line_ctxsw_2p16k_data+"\r\n")
fw.write("16p/64k:"+line_ctxsw_16p64k_data+"\r\n")
fw.write("0k create:"+line_create_0k_data+"\r\n")
fw.write("0k delete:"+line_delete_0k_data+"\r\n")
fw.write("10k create:"+line_create_10k_data+"\r\n")
fw.write("10k delete:"+line_delete_10k_data+"\r\n")
fw.close()
print "写入完毕" 

 

标签:10k,lmbench,create,测试,自动化,0k,line,data,delete
来源: https://blog.csdn.net/rong11417/article/details/90723583