# -*- coding: utf-8 -*-
# @Author : Felix Wang
# @time : 2018/8/13 22:13 # pip3 install pycurl
import pycurl
from io import BytesIO def test_website(url):
c = pycurl.Curl()
buffer = BytesIO() # 创建缓存对象
c.setopt(c.WRITEDATA, buffer) # 设置资源数据写入到缓存对象
c.setopt(c.URL, url) # 指定请求的URL
c.setopt(c.MAXREDIRS, 5) # 指定HTTP重定向的最大数
c.perform() # 执行 http_code = c.getinfo(pycurl.HTTP_CODE) # 返回的HTTP状态码
dns_resolve = c.getinfo(pycurl.NAMELOOKUP_TIME) # DNS解析所消耗的时间
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_size_upload = c.getinfo(pycurl.SIZE_UPLOAD) # 上传数据包大小
http_header_size = c.getinfo(pycurl.HEADER_SIZE) # HTTP头部大小
http_speed_downlaod = c.getinfo(pycurl.SPEED_DOWNLOAD) # 平均下载速度
http_speed_upload = c.getinfo(pycurl.SPEED_UPLOAD) # 平均上传速度
http_redirect_time = c.getinfo(pycurl.REDIRECT_TIME) # 重定向所消耗的时间 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("重定向时间: %.2f ms" % (http_redirect_time * 1000))
print("上传数据包大小: %d bytes/s" % http_size_upload)
print("下载数据包大小: %d bytes/s" % http_size_download)
print("HTTP头大小: %d bytes/s" % http_header_size)
print("平均上传速度: %d k/s" % (http_speed_upload / 1024))
print("平均下载速度: %d k/s" % (http_speed_downlaod / 1024)) if __name__ == '__main__':
test_url = 'www.baidu.com'
test_website(test_url)

python测试网站访问速度的更多相关文章

  1. 如何使用ping和tracert命令测试网站访问速度

    在我们平时访问的网站中,有一些网站访问速度非常快,比如百度搜索网站和一些门户网站,有些网站访问很慢,有些网站甚至无法访问.那么我们该如何判断这些网站的访问速度呢?下面我们就使用Windows的ping ...

  2. 测试网站访问速度的方法(GTmetrix)

     全方位的免费网站速度测试工具 — GTmetrix 它结合了Google Page Speed和Yahoo! YSlow的网页速度测试功能,并且提供可行的建议帮你改善网站速度.会根据网站的具体情况, ...

  3. windows下通过ping和tracert工具来测试网站访问速度

    一.环境 OS: windows 二.步骤 2.1.ping mirrors.163.com Pinging mirrors.163.com [23.111.1.151] with 32 bytes ...

  4. 使用 Nginx 提升网站访问速度

    使用 Nginx 提升网站访问速度 http://www.ibm.com/developerworks/cn/web/wa-lo-nginx/ Nginx 简介 Nginx ("engine ...

  5. Apache 使用gzip、deflate 压缩页面加快网站访问速度

    Apache 使用gzip 压缩页面加快网站访问速度 介绍: 网页压缩来进一步提升网页的浏览速度,它完全不需要任何的成本,只不过是会让您的服务器CPU占用率稍微提升一两个百分点而已或者更少.   原理 ...

  6. [技术博客]使用CDN加快网站访问速度

    [技术博客]使用CDN加快网站访问速度 2s : most users are willing to wait 10s : the limit for keeping the user's atten ...

  7. 巧用linux服务器的/dev/shm/,如果合理使用,可以避开磁盘IO不给力,提高网站访问速度。

    巧用linux服务器的/dev/shm/ 巧用linux服务器的/dev/shm/,如果合理使用,可以避开磁盘IO不给力,提高网站访问速度. 首先让我们认识一下,什么是tmpfs和/dev/shm/? ...

  8. 使用PHP和GZip压缩网站JS/CSS文件加速网站访问速度

    使用PHP和GZip压缩网站JS/CSS文件加速网站访问速度 一些泛WEB 2.0网站为了追求用户体验,可能会大量使用CSS和JS文件.这就导致在服务器带宽一定的情况下,多用户并发访问速度变慢.如何加 ...

  9. 10倍速!一招儿解决因googleapis被墙导致的许多国外网站访问速度慢的问题

    1x.com 是我非常喜欢的一家国外的摄影网站.但,打开它的首页要1分多钟!点击小图看大图的二级页面根本打不开.看着写着“Nude content”的小图却点不开大图的心情你们造吗?!很多国外网站访问 ...

随机推荐

  1. MouseMoveEvent为了不太耗资源在默认状态下是要鼠标按下才能捕捉到。要想鼠标不按下时的移动也能捕捉到,需要setMouseTracking(true)

    最近用Qt软件界面,需要用到mouseMoveEvent,研究了下,发现些问题,分享一下. 在Qt中要捕捉鼠标移动事件需要重写MouseMoveEvent,但是MouseMoveEvent为了不太耗资 ...

  2. 两个链表的第一个公共结点——牛客offer

    题目描述: 输入两个链表,找出它们的第一个公共结点. 题目分析: 只是数据域相同不是公共节点.公共结点代表该节点在两个链表中的数据域和指针域都是相同的,这意味着从该公共节点开始,后面的结点都是两个链表 ...

  3. 怎样使用 v-bind 绑定 html 标签的属性值?

    1. 在 Vue 中可是使用 v-bind 对 html 中的 属性 进行绑定, 如下所示, 我们想给这个 a 标签绑定一个 title 值: <!DOCTYPE html> <ht ...

  4. lunix部署其前端项目常见报错

    1.npm install 报权限错误,如: 解决办法: 添加--unsafe-perm 参数,如 #npm install --registry=https://registry.npm.taoba ...

  5. centos 配置rsync+inotify数据实时同步

    何为rsync? 定义: rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,保持链接和权限,非常适用于异地备份 何为源端和发起端? 在远程同步过程中,负责发起rs ...

  6. 将java文件编译成class文件

    一般情况下,在myeclipse中保存java文件后会自动编译成class文件,但是这种情况只能编译当前工程的java文件,但是如果需要编译不是一个工程的java文件,比如在网上拷贝的java文件改如 ...

  7. Windows 系统自动登录配置

    1. open regedit 2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon 3.在打开的项右 ...

  8. pxc 5.6 忘记 root 密码

    pxc 5.6 忘记密码处理 只说思路: mysql.user 是 myisam 引擎的,pxc 只支持 innodb 引擎.其他存储引擎的更改不复制.然而,DDL(Data Definition L ...

  9. 数据驱动——ddt

    1: pip3 install ddt 2: @ddt 装饰 @data((2,3),(4,5)) 支持列表,元祖,字典 @unpack 解压数据   1 import unittest 2 from ...

  10. USRPX310 在GNU Radio上更改通道A或B

    UHD:USRP sink和USRP source默认是A通道发射接收.或设置 Mb0:Subdev Spec: A:0 更改为B通道收发:设置 Mb0:Subdev Spec: B:0