zoukankan      html  css  js  c++  java
  • 测试网站页面网速的一个简单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
  • 相关阅读:
    ln 命令使用
    python 调用浏览器方法
    Git新手必备常用命令
    Spring 整合 Hibernate 入门
    看看什么是Guice
    maven 详解,其它这几篇文章也不错
    shell编程中date用法(转)
    通过scp实现vps控制没有外网IP的localhost
    centos6.6安装python2.7
    Cygwin配置
  • 原文地址:https://www.cnblogs.com/kevingrace/p/5840951.html
Copyright © 2011-2022 走看看