好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

测试网站页面网速的一个简单Python脚本

?

无聊之余,下面分享一个Python小脚本:测试网站页面访问速度

[root@huanqiu?~]#?vim?pyHdhCmsTestpy
#!/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?pyHdhCmsTestpy

测试网页,比如HdhCmsTesthuanqiu测试数据

[root@huanqiu?~]#?python?pyHdhCmsTestpy?HdhCmsTesthuanqiu测试数据
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

查看更多关于测试网站页面网速的一个简单Python脚本的详细内容...

  阅读:36次