在性能測试中。我们常常须要画出CPU memory 或者IO的趋势图。

预计大学里。大多数人都学习过matlib, 领略了matlib绘图的强大。

python提供了强大的绘图模块matplotlib,全然依照matlib的库来的。移步到官方站点看看http://matplotlib.org/。

绘制性能測试中CPU, memory, IO的趋势图,不须要非常多复杂的功能,就是个2D图。 直接看代码吧。直接!

须要的读者。能够直接下载这个代码用就好了。兼容了CPU/Memory/IO,  或者多个进程的情况,文件名称为draw_trend.py, 使用方法。draw_trend.py data_file cpu/mem/io, 读者须要做的仅仅是把监控的数据按代码后面的格式处理出来。

#!/usr/bin/env python
#coding=utf-8import matplotlib as mpl
mpl.use('Agg')
import matplotlib.pyplot as plt
import datetime as dt
from matplotlib.font_manager import FontProperties
import sysdef draw_trend(data_file,object_type):fontP = FontProperties()fontP.set_size('small')data=open(data_file,"r")lines=data.readlines()data.close()lable_list=lines[0].split(None)#data={"lable_name":[x,y1,y2],x:[1,2,4],y1:[2,4],y3:[4,5]}lable_name=[]data_list=[]for lable in lable_list:lable_name.append(lable)data_list.append([])for line in lines[1:]:line_list=line.strip().split(None)#print line_list#print data_listfor i in xrange(len(data_list)):#print data_listif i==0:data_list[0].append(dt.datetime(int(line_list[0][0:4]), int(line_list[0][4:6]),int(line_list[0][6:8]),int(line_list[0][9:11]),int(line_list[0][12:14]),int(line_list[0][15:17])))else:if object_type=="mem":data_list[i].append(float(line_list[i]))else:data_list[i].append(float(line_list[i]))#print data_list'''dates = [dt.datetime.today() + dt.timedelta(days=i) for i in range(10)]values = np.random.rand(len(dates))'''mpl_date2num=mpl.dates.date2num(data_list[0])for y_value in data_list[1:]:plt.plot_date(mpl_date2num, y_value,"-",label=lable_name[data_list.index(y_value)])xAxis = plt.axes().xaxisdateFmt = mpl.dates.DateFormatter('%H:%M')#daysLoc = mpl.dates.DayLocator()#minLoca=mpl.dates.MinuteLocator(interval=2)#secLoc=mpl.dates.SecondLocator(interval=60)xAxis.set_major_formatter(dateFmt)#xAxis.set_major_locator(minLoca)#xAxis.set_minor_locator(secLoc)#plt.legend(loc='upper right',bbox_to_anchor=(1.0, 1.07),prop = fontP,ncol=len(lable_name)-1)#leg=plt.legend(loc='upper right',prop = fontP)leg=plt.legend(loc='upper right',prop={'size':8})leg.get_frame().set_alpha(0.5)plt.tick_params(axis='both', labelsize=8)plt.xlabel('Time')if object_type=="mem":plt.ylabel('Memory/unit M')if  object_type=="io":plt.ylabel('IO Busy')if  object_type=="cpu":plt.ylabel('CPU Usage Percent')plt.savefig(data_file+".png")#plt.show()
try:draw_trend(sys.argv[1],sys.argv[2])
except:print "error command, right command should be:","python draw_matlab.py datafile  mem/io/cpu"

上传个CPU 例子图。

数据要求的格式为。第一行为 X轴标题,和相应绘图对象。每一个对象空格隔开。看以下数据

time Process1 Process2 Process3 Process4 Process5
20120410-13:13:47 1 1 0 80 2
20120410-13:13:53 0 0 0 81 0
20120410-13:13:59 4 2 0 82 6
20120410-13:14:05 4 2 0 83 6
20120410-13:14:11 5 3 0 84 8
20120410-13:14:17 5 3 0 85 8
20120410-13:14:23 5 2 0 93 7
20120410-13:14:29 5 2 0 93 7
20120410-13:14:35 4 2 0 94 6
20120410-13:14:41 5 3 0 92 8
20120410-13:14:47 4 3 0 93 7
20120410-13:14:53 4 2 0 94 6
20120410-13:14:59 4 2 0 94 6
20120410-13:15:05 3 2 0 95 5
20120410-13:15:11 4 2 0 94 6
20120410-13:15:17 4 2 0 94 6
20120410-13:15:23 4 1 0 95 5
20120410-13:15:29 5 1 0 94 6

转载于:https://www.cnblogs.com/gcczhongduan/p/5316834.html

用python做自己主动化測试--绘制系统性能趋势图和科学计算相关推荐

  1. Selenium2 Python 自己主动化測试实战学习笔记(五)

    7.1 自己主动化測试用例 无论是功能測试.性能測试和自己主动化測试时都须要编写測试用例,測试用例的好坏能准确的体现了測试人员的经验.能力以及对项目的深度理解. 7.1.1 手工測试用例与自己主动化測 ...

  2. Android自己主动化測试之Monkeyrunner用法及实例

    眼下android SDK里自带的现成的測试工具有monkey 和 monkeyrunner两个.大家别看这俩兄弟名字相像,但事实上是完全然全不同的两个工具,应用在不同的測试领域.总的来说,monke ...

  3. 【金阳光測试】大话Android自己主动化測试--Android自己主动化系列(1)--金阳光于2013年4月份...

    Android自己主动化測试框架和工具在四年多的发展日趋成熟. 从五年前的第一代自己主动化架构演进到眼下第四代(本系列讲座第7篇后将具体剖析第三代和第四代自己主动化框架)从曾经最早谷歌推崇的monke ...

  4. Android 自己主动化測试之------ Monkey工具

    尽管 一般公司都有专门的測试人员,可是有时候 免不了 我们既要去开发产品,也要去測试产品,測试产品.有些机械化的 点界面的操作,谷歌已经给我们提供了工具.Monkey, 猴子測试. 什么是Monkey ...

  5. 逐步转向自己主动化測试

    从Mac team转到SSOteam的时间差点儿相同也有一个多月的时间了,当时Bruce问我要不要转team的时候,我也有考虑过一段时间.纠结于各种原因.然后.自己最后还是转了.经过大半个月的适应,还 ...

  6. 利用Continuous Testing实现Eclipse环境自己主动单元測试

    当你Eclipse环境中改动项目中的某个方法时,你可能因为各种原因没有执行单元測试,结果代码提交,悲剧就可能随之而来. 所幸infinitest(http://infinitest.github.io ...

  7. python 画k线_使用matplotlib绘制k线图

    利用matplotlib.finance绘制K线图时使用关键要点 绘制k线图的核心语句是: import matplotlib.finance as mpf mpf.candlestick_ochl( ...

  8. 老鱼Python数据分析——篇十一:使用matplotlib画涨停趋势图

    前面的文章已经解决了数据问题,接下来的重点就是对数据进行分析. 对于短期行情最直观的情绪数据,就是看每天涨停票数量的变化. 今天因为是边学边做,所以先画个简单的,只显示涨停票数变化的趋势图. 实现步骤 ...

  9. python做excel表格柱状图制作_PythonExcel绘制柱形图

    Apple iPhone 11 (A2223) 128GB 黑色 移动联通电信4G手机 双卡双待 4999元包邮 去购买 > 本文主要讲述如何使用Python操作Excel绘制柱形图. 相关代码 ...

最新文章

  1. EDSR-PyTorch复现
  2. 紫书 程序 3-3 蛇形填数
  3. win8计算机安全模式,WIN8如何设置按F8进入安全模式
  4. PLSQL快捷键使用,让你高速开发
  5. anaconda Pycharm jupyter环境配置教程(最后一次写了!!!)
  6. FindChildControl与FindComponent(动态创建的控件要通过Owner.FindComponent去找该控件)
  7. 国内安装K8S镜像源
  8. 订单接收不同业务消息设计
  9. paip.c++ qt 项目工程互相引用的方法
  10. 软件设计师历年真题常错的题加解析——上午题
  11. 接入阿里云OSS--公有云分布式存储
  12. Python关于socket的一个小型服务器和客户机实例
  13. 浏览器及app消息推送
  14. 过年不再被逼相亲——我用python给亲戚展示2022的相亲数据
  15. Java毕业设计_基于SSM框架的图片素材管理系统的设计与实现
  16. 一个应届生拿字节跳动offer的努力,整整用了一年的时间
  17. 数据的商业化实现之商圈选址
  18. 场效应管AO3401
  19. 没有订单,可以自行申请BSCI认证吗?
  20. Day11OSI与TCP/IP协议簇以及物理层

热门文章

  1. Linux grep不包含某些字符串的命令
  2. 机器学习入门案例简单理解——Tensorflow之MNIST解析
  3. tableau显示正在将数据发送到服务器,升级 Tableau Server 之后无法打开以发布的数据源形式发布的数据提取...
  4. android 发送前台广播,使用IntentService与BroadcastReceiver实现后台服务(Android7.0可用)...
  5. 计算机组成原理平均cpi怎么算_计算机组成原理--1.2计算机系统性能评价
  6. spring 可以有多个ioc容器吗
  7. mysql主从架构搭建_MySQL主从架构搭建
  8. contos7设置固定ip和dns_CentOS7 修改设置静态IP和DNS
  9. java的object_Java中的Object类详细介绍
  10. mui汉字图标_MUI从入门到项目实战(三)增加自定义icon图标