python 探测web服务质量

Posted on Posted in python

> code

  1. #!/usr/bin/env python  
  2. import ossys  
  3. import time  
  4. import pycurl  
  5.   
  6. URL="http://liuhonghe.me"  
  7. c = pycurl.Curl()   #创建对象  
  8. c.setopt(pycurl.URL, URL)   #定义请求的url常量  
  9. c.setopt(pycurl.CONNECTTIMEOUT, 5)  #定义请求连接的等待时间  
  10. c.setopt(pycurl.TIMEOUT, 5) #定义请求超时时间  
  11. c.setopt(pycurl.NOPROGRESS, 1)  #屏蔽下载进度条  
  12. c.setopt(pycurl.FORBID_REUSE, 1)    #完成交互后强制断开连接,不重用  
  13. c.setopt(pycurl.MAXREDIRS, 1)   #指定http重定向的最大数为1  
  14. c.setopt(pycurl.DNS_CACHE_TIMEOUT, 30)  #设置保存dns信息的时间为30秒  
  15.   
  16. indexfile = open(os.path.dirname(os.path.realpath(__file__))+"/content.txt", "wb")  
  17. c.setopt(pycurl.WRITEHEADER, indexfile)  
  18. c.setopt(pycurl.WRITEDATA, indexfile)  
  19. try:  
  20.     c.perform()     #提交请求  
  21. except Exception as e:  
  22.     print("connection error: {}".format(str(e)))  
  23.     indexfile.close()  
  24.     c.close()  
  25.     sys.exit()  
  26. NAMELOOKUP_TIME = c.getinfo(c.NAMELOOKUP_TIME)  #获取dns解析时间  
  27. CONNECT_TIME = c.getinfo(c.CONNECT_TIME)    #获取建立连接时间  
  28. PRETRANSFER_TIME = c.getinfo(c.PRETRANSFER_TIME)    #获取从建立连接到准备传说所消耗的时间  
  29. STARTTRANSFER_TIME = c.getinfo(c.STARTTRANSFER_TIME)    #获取从建立连接到传输开始消耗的世家你  
  30. TOTAL_TIME = c.getinfo(c.TOTAL_TIME)    #获取传输总时间  
  31. HTTP_CODE = c.getinfo(c.HTTP_CODE)  #获取http状态码  
  32. SIZE_DOWNLOAD = c.getinfo(c.SIZE_DOWNLOAD)  #获取下载数据包大小  
  33. HEADER_SIZE = c.getinfo(c.HEADER_SIZE)  #获取http头部大小  
  34. SPEED_DOWNLOAD = c.getinfo(c.SPEED_DOWNLOAD)    #获取平均下载速度  
  35.   
  36. print(" http code:{} \n DNS解析时间:{:.2f}ms \n 建立连接时间:{:.2f}ms \n 准备传输时间:{:.2f}ms \n 传输开始时间:{:.2f}ms \n 传输结束总时间:{}ms \n 下载数据包大小:{}bytes/s \n HTTP头部大小:{}byte \n 平均下载速度:{}bytes/s".format(HTTP_CODE,NAMELOOKUP_TIME*1000,CONNECT_TIME*1000,PRETRANSFER_TIME*1000,STARTTRANSFER_TIME*1000,TOTAL_TIME*1000,SIZE_DOWNLOAD*1000,HEADER_SIZE,SPEED_DOWNLOAD))  
  37. indexfile.close()  
  38. c.close()  
» 转载请注明来源:若我若鱼 » python 探测web服务质量

Leave a Reply

Your email address will not be published. Required fields are marked *

seventeen − ten =