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
  • 相关阅读:
    浅谈Java中的对象和对象引用
    学习Python要知道哪些重要的库和工具
    Python新手最容易犯的十大错误
    java截取字符串中的数字
    Android 多语言
    R语言学习笔记(二): 类与泛型函数
    R语言学习笔记(一):mode, class, typeof的区别
    代理实现方式
    如何将链表反转
    同步锁之lock
  • 原文地址:https://www.cnblogs.com/kevingrace/p/5840951.html
Copyright © 2011-2022 走看看