本人在作接口測試的過程當中,每次請求接口時都會本身計算一個請求時間存在數據庫裏,時間一長積累了不少數據,在學習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和報告再好不過了。數據庫