# -*- 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. docker学习笔记之把容器commit成镜像

    docker提供了两种镜像制作的方式,提高了使用的灵活性: 1.可以将更改后的容器提交,制作成镜像(这是接下来要说明的) 2.通过Dockerfile来制作镜像 下面通过一个例子来展示方法1. 本地有 ...

  2. SDL2 程序 编译 错误 及 解决方案

    main函数应写为int main( int argc, char* args[] )而不是int main()形式 链接库时应注意顺序 mingw32;SDL2main;SDL2;          ...

  3. Jmeter之压测探索和结果分析

    1.copy过来的,很有道理的一句话~ 最大并发数:取决于你的业务类型,数据量,处理时的资源需求等,具体多少,需要做一些性能测试来衡量 确定待测试的场景,设计脚本,不断增加并发数量. 2.CPU压不上 ...

  4. c语言中gets()的详细用法

    gets从标准输入设备读字符串函数.可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出. 从stdin流中读取字符串,直至接受到换行符 ...

  5. C# 定义热键

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  6. javascript是一种安全语言

    一.简单JavaScript是一个基于Java基本语句和控制流的简单而紧凑的设计,这是学习Java的一个很好的过渡.它的变量类型是弱类型,而不是严格的数据类型.二.力学JavaScript是动态的,可 ...

  7. mac 下的操作

    nodejs在Mac下的卸载 在 node 官网上下载的安装包,用安装包安装的node.应该可以用一下命令行卸载: 在终端输入以下命令: sudo rm -rf /usr/local/{bin/{no ...

  8. 制作linux云主机镜像

    目录 制作linux云主机镜像 1.物理机环境准备 2.安装kvm虚拟机 3.操作虚拟机 4.在物理机上处理镜像 5.拷贝制作好的raw格式的镜像 6.发布镜像到云平台 制作linux云主机镜像 1. ...

  9. CentOS7安装node环境

    1 找到官网复制链接地址 2 再自己Linux的按照路径,wget下载软件包并解压 wget https://nodejs.org/dist/v10.16.1/node-v10.16.1-linux- ...

  10. deep_learning_cross_entropy

    交叉熵损失函数 交叉熵代价函数(Cross-entropy cost function)是用来衡量人工神经网络(ANN)的预测值与实际值的一种方式.与二次代价函数相比,它能更有效地促进ANN的训练.在 ...