# -*- 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. 【动态规划】subsequence 1

    题目链接:https://ac.nowcoder.com/acm/contest/885/G 题意: 两个串,s  t,求s的所有子串中大于 t  的数目 题解: dp[i][j] 表示 s的前i个, ...

  2. tomcat 虚拟目录 连接池

  3. 基于S7协议实现与西门子PLC通信

    西门子PLC是目前工控行业市场占有额比较大的一款PLC,而且随着上位机的越来越普及, 有很多人开始考虑自己开发上位机实现与西门子PLC的通信,遇到的第一个问题就是数据通信. 其实西门子PLC提供的接口 ...

  4. C#int类型 转Byte[]

    方法1:使用左移和右移 int转化为byte[]:   public  byte[] intToBytes(int value)         {             byte[] src = ...

  5. js中神奇的东西

    简单了解一些js的东西 window.history.go(-1);//历史记录-1,跳转到上一次操作的页面 Location 对象的 replace() 方法用于重新加载当前文档(页面) javas ...

  6. R语言学习笔记:读取前n行数据

    常规读取 一般我们读取文件时都会读取全部的文件然后再进行操作,因为R是基于内存进行计算的. data <- read.table("C:\\Users\\Hider\\Desktop\ ...

  7. 如何将编译后的文件打包成jar文件

    如果需要修改像spring和dubbo中的jar包源码,修改后怎么打包呢? 如下: 1.win+r进入命令行: 2.找到需要打包的class文件: 3.jar -cvf [jar包的名字] [需要打包 ...

  8. 修改this的指向

    call var a={ name:'xuux', fn:function(a,b){ console.log(a+b); console.log(this);//{name: "xuux& ...

  9. python 访问权限

    访问权限 权限: 公有的:类中的普通属性和方法,默认都是公有的,可以在类的内部.外部.子类中使用 私有的:定义是在前面加两个'_',只能在本类的内部使用,不能再外部及子类中使用 示例: class P ...

  10. 7 java 笔记

    1 方法是类或者对象行为特征的抽象,方法是类或对象最重要的组成部分 2 java里面方法的参数传递方式只有一种:值传递 值传递:就是将实际参数值的复制品传入方法内,而参数本身不会受到任何影响.(这是j ...