Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- # @Time : 17/3/23 下午1:45
- # @Author : Bao Jun
- # @Site : Shanghai China
- # @File : interface_request_time.py
- # @Software: PyCharm
- import datetime
- import os
- import csv
- #定义变量
- logDir="/Users/bob/Downloads/"
- logName="access_"
- getLogTime=2
- interfaceFile='/Users/bob/Downloads/interface.txt'
- #获取指定的时间,转成需要的日期格式,此处为YYYYMMDD
- def getDaysByNum(num):
- today=datetime.date.today()
- oneday=datetime.timedelta(days=1)
- li=[]
- for i in range(0,num):
- today=today-oneday
- li.append(str(today).replace('-', ''))
- return li
- #调用grep,相比之下re效率太差
- def grep(filename, arg):
- cmd=os.popen("grep -h %s %s"%(arg,filename))
- return cmd.read()
- #拼接要grep的日志
- grepLogs=''
- for i in getDaysByNum(getLogTime):
- grepLogs = grepLogs+logDir+logName+i+'.log '
- #主函数,返回字段:interface,调用次数,最快,最慢,平均
- def giveData(grepstring):
- grepData=grep(grepLogs, grepstring)
- grepLine=grepData.splitlines()
- request_time_all=[]
- for i in range(len(grepLine)):
- request_time=float(grepLine[i].split()[-1].strip('"'))
- request_time_all.append(request_time)
- if len(request_time_all) == 0:
- return grepstring,0,0,0,0
- else:
- return grepstring, len(request_time_all), min(request_time_all) , max(request_time_all), sum(request_time_all)/len(request_time_all)
- if __name__ == "__main__":
- interface=open(interfaceFile,'r')
- reportFile="%s-%s-interface-report.csv"%(getDaysByNum(7)[6],getDaysByNum(7)[0])
- print(reportFile)
- report=open(reportFile,'wb')
- writer=csv.writer(report)
- writer.writerow(('接口名称','接口请求次数','最短相应时间','最长响应时间','平均响应时间'))
- for line in interface.readlines():
- writer.writerow(giveData(line.strip()))
- report.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement