本人最近接到一个服务器性能测试需求,在做完测试准备执行完测试用例之后,在处理测试数据的时候使用的python图形化工具plotly,之前写过一些脚本都是实现教程的代码,借此机会正好进行了方法的封装。分享代码,供大家参考。
下面是python读取文件的类代码:
#!/usr/bin/python
# coding=utf-8
from second import Violin as vv
class Fission:
z = []
x = []
def __init__(self):
print "欢迎使用fission类!"
def getData(self, name):
size = 0;
with open("/Users/Vicky/Documents/workspace/api_test/long/" + name + ".log") as apidata:
for i in apidata:
data = i.split("\r\n")[0]
time = float(data)
if time > 2: continue
self.z.append(data)
size += 1;
length = size;
for i in range(length):
self.x.append(name + "线程")
if __name__ == "__main__":
vvv = vv.Violin()
fission = Fission()
for i in range(10,23,1):
aa = str((i + 1) * 10)
fission.getData(aa)
vvv.makeViolin(fission.z, fission.x, "接口性能测试", "110-230")
下面是生成voilin图标的方法封装:
#!/usr/bin/python
# coding=utf-8
import plotly.plotly
import pandas as pd
import plotly.figure_factory as ff
class Violin:
def __init__(self):
print "violin图表生成类!"
def makeViolin(self, score, group, title, name):
data = pd.DataFrame(dict(Score=score, Group=group))
fig = ff.create_violin(data, data_header='Score', group_header='Group', height=700, width=1200, title=title)
plotly.offline.plot(fig, filename=name + ".html")
下面是生成的图标的截图:
下面是QPS的图截图: