背景:使用jmeter的插件PerfMon生成的结果数据,需要获取到cpu的TOP 10.
解决方案:使用python语言的pandas组件,可以对csv类型的数据进行各种操作。
处理过程:
1-python脚本可以在命令行中获取待查找字符。
使用argparse组件,获取命令行参数;使用re组件,获取需要查找的字符串所在行
2-使用pandas组件,对文件进行排序。
3-命令行执行数据获取及排序,写入文件;再通过命令行获取TOP 10
# /usr/bin/python getcpudata.py --ip="9.77.90.207" --type="CPU"
# cat filterOrder.csv | head -n 11
以下是完整代码:
#coding:utf-8
#__author__ ='xxx'
import re
import argparse
import pandas as pd
parser = argparse.ArgumentParser(description='manual to this script')
parser.add_argument('--ip', type=str, default = None)
parser.add_argument('--type', type=str, default=None)
args = parser.parse_args()
filterStr = args.ip + " " + args.type
f1=file('perf.csv','r')
perfdata=f1.readlines()
f1.close()
results = []
f2 = open('filter.csv', 'w')
f2.writelines(perfdata[0])
for i in perfdata:
n = re.findall(filterStr, i)
if n:
f2.writelines(i)
f2.close()
df = pd.read_csv('filter.csv')
df = df.sort_values('elapsed',ascending = False)
df.to_csv('filterOrder.csv',index = False)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。