本人在作接口测试的过程当中,每次请求接口时都会本身计算一个请求时间存在数据库里,时间一长积累了不少数据,在学习Python+plotly进行数据可视化后,终于对接口请求时间这个数据进行了处理,制做了violin图表,效果还不错。分享一下代码,供你们参考。java
下面是我本身的测试方法:python
#!/usr/bin/python # coding=utf-8 import plotly.plotly import pandas as pd import plotly.figure_factory as ff import second.mysql if __name__ == "__main__": a = second.mysql.Mysql() b = a.getApiTimes('/article/list/userfeed', '/article/detail', '/article/info', '/advertise/api/list', '/common/menu') df = pd.DataFrame(dict(Score=b[0], Group=b[1])) # 合并数据 fig = ff.create_violin(df, data_header='Score', group_header='Group', height=700, width=1200,title='接口请求时间') plotly.offline.plot(fig)
下面是mysql里面的getapitimes()方法:mysql
def getApiTimes(self, *params): num = str(params.__len__()) print "接口数:" + num conn = self.conn # 获取连接 cur = conn.cursor() data = [] size = [] for api in params: cur.execute("SELECT * FROM api_result WHERE api_name = \"" + api + "\"") dfs = cur.fetchall() # 排除异常数据 for row in dfs: if row[7] < 1: data.append(row[7]) size.append(api) cur.close() conn.commit() conn.close() return [data, size]
下面是几个接口的效果图:sql
这下再去看接口请求的响应时间,简直太直接了。用来作PPT和报告再好不过了。数据库