Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # @Time : 17/3/23 下午1:45
  4. # @Author : Bao Jun
  5. # @Site : Shanghai China
  6. # @File : interface_request_time.py
  7. # @Software: PyCharm
  8.  
  9. import datetime
  10. import os
  11. import csv
  12.  
  13. #定义变量
  14. logDir="/Users/bob/Downloads/"
  15. logName="access_"
  16. getLogTime=2
  17. interfaceFile='/Users/bob/Downloads/interface.txt'
  18.  
  19.  
  20. #获取指定的时间,转成需要的日期格式,此处为YYYYMMDD
  21. def getDaysByNum(num):
  22. today=datetime.date.today()
  23. oneday=datetime.timedelta(days=1)
  24. li=[]
  25. for i in range(0,num):
  26. today=today-oneday
  27. li.append(str(today).replace('-', ''))
  28. return li
  29.  
  30.  
  31. #调用grep,相比之下re效率太差
  32. def grep(filename, arg):
  33. cmd=os.popen("grep -h %s %s"%(arg,filename))
  34. return cmd.read()
  35.  
  36.  
  37. #拼接要grep的日志
  38. grepLogs=''
  39. for i in getDaysByNum(getLogTime):
  40. grepLogs = grepLogs+logDir+logName+i+'.log '
  41.  
  42.  
  43. #主函数,返回字段:interface,调用次数,最快,最慢,平均
  44. def giveData(grepstring):
  45. grepData=grep(grepLogs, grepstring)
  46. grepLine=grepData.splitlines()
  47. request_time_all=[]
  48. for i in range(len(grepLine)):
  49. request_time=float(grepLine[i].split()[-1].strip('"'))
  50. request_time_all.append(request_time)
  51. if len(request_time_all) == 0:
  52. return grepstring,0,0,0,0
  53. else:
  54. return grepstring, len(request_time_all), min(request_time_all) , max(request_time_all), sum(request_time_all)/len(request_time_all)
  55.  
  56.  
  57.  
  58. if __name__ == "__main__":
  59.  
  60. interface=open(interfaceFile,'r')
  61. reportFile="%s-%s-interface-report.csv"%(getDaysByNum(7)[6],getDaysByNum(7)[0])
  62.  
  63. print(reportFile)
  64. report=open(reportFile,'wb')
  65. writer=csv.writer(report)
  66. writer.writerow(('接口名称','接口请求次数','最短相应时间','最长响应时间','平均响应时间'))
  67. for line in interface.readlines():
  68. writer.writerow(giveData(line.strip()))
  69. report.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement