利用Python+plotly+MySQL制作统计接口请求时间的本地violin图表

来源:互联网 发布:淘宝关键词搜索规则 编辑:程序博客网 时间:2024/05/29 09:55

本人在做接口测试的过程中,每次请求接口时都会自己计算一个请求时间存在数据库里,时间一长积累了很多数据,在学习Python+plotly进行数据可视化后,终于对接口请求时间这个数据进行了处理,制作了violin图表,效果还不错。分享一下代码,供大家参考。

下面是我自己的测试方法:

#!/usr/bin/python# coding=utf-8import plotly.plotlyimport pandas as pdimport plotly.figure_factory as ffimport second.mysqlif __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()方法:

    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]

下面是几个接口的效果图:


这下再去看接口请求的响应时间,简直太直接了。用来做PPT和报告再好不过了。

最后再分享一个自己的QQ群:340964272



原创粉丝点击