天天看點

測試網站頁面網速的一個簡單Python腳本

無聊之餘,下面分享一個Python小腳本:測試網站頁面通路速度

[root@huanqiu ~]# vim pywww.py
#!/usr/bin/python
# coding: UTF-8
import StringIO,pycurl,sys,os,time

class idctest:
    def __init__(self):
          self.contents = ''
    def body_callback(self,buf):
          self.contents = self.contents + buf

def test_gzip(input_url):
    t = idctest()
    #gzip_test = file("gzip_test.txt", 'w')
    c = pycurl.Curl()
    c.setopt(pycurl.WRITEFUNCTION,t.body_callback)
    c.setopt(pycurl.ENCODING, 'gzip')
    c.setopt(pycurl.URL,input_url)
    c.setopt(pycurl.MAXREDIRS, 5)
    c.perform()

    http_code = c.getinfo(pycurl.HTTP_CODE)
    dns_resolve = c.getinfo(pycurl.NAMELOOKUP_TIME)
    http_conn_time = c.getinfo(pycurl.CONNECT_TIME)
    http_pre_trans = c.getinfo(pycurl.PRETRANSFER_TIME)
    http_start_trans = c.getinfo(pycurl.STARTTRANSFER_TIME)
    http_total_time = c.getinfo(pycurl.TOTAL_TIME)
    http_size_download = c.getinfo(pycurl.SIZE_DOWNLOAD)
    http_header_size = c.getinfo(pycurl.HEADER_SIZE)
    http_speed_downlaod = c.getinfo(pycurl.SPEED_DOWNLOAD)

    print 'HTTP響應狀态: %d' %http_code
    print 'DNS解析時間:%.2f ms' %(dns_resolve*1000)
    print '建立連接配接時間: %.2f ms' %(http_conn_time*1000)
    print '準備傳輸時間: %.2f ms' %(http_pre_trans*1000)
    print "傳輸開始時間: %.2f ms" %(http_start_trans*1000)
    print "傳輸結束時間: %.2f ms" %(http_total_time*1000)
    print "下載下傳資料包大小: %d bytes/s" %http_size_download
    print "HTTP頭大小: %d bytes/s" %http_header_size
    print "平均下載下傳速度: %d k/s" %(http_speed_downlaod/1024)

if __name__ == '__main__':
   input_url = sys.argv[1]
   test_gzip(input_url)
      

賦予腳本執行權限

[root@huanqiu ~]# chmod 755 pywww.py 
      

測試網頁,比如www.huanqiu.com

[root@huanqiu ~]# python pywww.py www.huanqiu.com
HTTP響應狀态: 200
DNS解析時間:2.56 ms
建立連接配接時間: 4.92 ms
準備傳輸時間: 4.93 ms
傳輸開始時間: 13.08 ms
傳輸結束時間: 17.71 ms
下載下傳資料包大小: 40101 bytes/s
HTTP頭大小: 356 bytes/s
平均下載下傳速度: 2210 k/s      

*************** 當你發現自己的才華撐不起野心時,就請安靜下來學習吧!***************