• 测试网站页面网速的Python脚本


    一、测试网站页面网速脚本

    [root@salt ~]# cat check_url.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@salt ~]# chmod +x check_url.py 
    
    #运行脚本
    [root@salt ~]# python check_url.py www.baidu.com
    HTTP响应状态: 200
    DNS解析时间:41.01 ms
    建立连接时间: 62.14 ms
    准备传输时间: 62.57 ms
    传输开始时间: 120.10 ms
    传输结束时间: 126.41 ms
    下载数据包大小: 32007 bytes/s
    HTTP头大小: 965 bytes/s
    平均下载速度: 247 k/s
    

      

  • 相关阅读:
    电商框架
    激光推送
    requirejs的用法(二)
    requirejs(一)
    AngularJs表单验证
    angularjs学习资料
    AngularJS内置指令
    angularjs 指令详解
    ASP.NET MVC5 + EF6 入门教程 (5) Model和Entity Framework
    EF框架step by step(9)—Code First Fluent API
  • 原文地址:https://www.cnblogs.com/nulige/p/9231335.html
Copyright © 2020-2023  润新知