無聊之餘,下面分享一個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