码迷,mamicode.com
首页 > 编程语言 > 详细

python之web服务质量探测(pycurl模块)

时间:2020-03-24 01:06:06      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:star   进度   进度条   ati   服务   header   重定向   连接   out   

一个web网站的好坏主要看可用性和响应速度,直接影响用户体验,让我们来探测一下自己公司网站速度和质量到底怎么样!

import pycurl
import os ,sys
import time
URL =http://www.baidu.com #探测目标的url
c =pycurl.Curl() #创建一个curl对象
c.setopt(pycurl.URL,URL)#定义请求url的常量
c.setopt(pycurl.CONNECTTIMEOUT,10) #连接等待时间
c.setopt(pycurl.TIMEOUT,10) #超时时间
c.setopt(pycurl.NOPROGRESS,0) #是否屏蔽进度条
c.setopt(pycurl.MAXREDIRS,5) #指定http重定向最大数
c.setopt(pycurl.FORBID_REUSE,1) #完成交互后强制断开,不重用
c.setopt(pycurl.DNS_CACHE_TIMEOUT,60) #DNS保存信息时间
#c.setopt(pycurl.URL,‘http://www.auvgo.com‘) #指定请求的URL
#c.setopt(pycurl.USERAGENT,"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 2.0.50324)") #配置HTTP请求头

#创建一个文件对象,用‘wb‘方式打开,用来存储http头部和页面内容
indexfile =open(os.path.dirname(os.path.realpath(__file__))+"/context.txt",wb)
c.setopt(pycurl.WRITEHEADER,indexfile) #将返回的http header定向到indexfile文件对象
c.setopt(pycurl.WRITEDATA,indexfile)#将返回的http 数据内容定向到indexfile文件对象
try:
    c.perform() #提交请求
except Exception as e:
    print(连接错误:+str(e))
    indexfile.close()
    c.close()
    sys.exit()
NAMELOOKUP_TIME = c.getinfo(c.NAMELOOKUP_TIME) #获取dns解析时间
CONNECT_TIME = c.getinfo(c.CONNECT_TIME)#获取建立连接时间
PRETRANSFER_TIME = c.getinfo(c.PRETRANSFER_TIME)#获取从建立连接到准备传输所消耗的时间
STARTTRANSFER_TIME = c.getinfo(c.STARTTRANSFER_TIME)#获取从建立连接到传输所消耗的时间
TOTAL_TIME =c.getinfo(c.TOTAL_TIME)#获取传输的总时间
HTTP_CODE = c.getinfo(c.HTTP_CODE)#获取HTTP状态码
SIZE_DOWNLOAD = c.getinfo(c.SIZE_DOWNLOAD)#获取下载数据包的大小
HEADER_SIZE = c.getinfo(c.HEADER_SIZE)#获取HTTP头部大小
SPEED_DOWNLOAD = c.getinfo(c.SPEED_DOWNLOAD)#获取平均下载速度
#打印输出相关数据
print(HTTP状态码: %s %(HTTP_CODE))
print(DNS解析时间:%.2f ms %(NAMELOOKUP_TIME*1000))
print(建立连接时间:%.2f ms %(CONNECT_TIME*1000))
print(准备传输时间:%.2f ms %(PRETRANSFER_TIME*1000))
print(传输开始时间:%.2f ms %(STARTTRANSFER_TIME*1000))
print(传输结束总时间:%.2f ms %(TOTAL_TIME*1000))
print(下载数据包大小:%d bytes/s %(SIZE_DOWNLOAD))
print(HTTP头部大小:%d bytes/s %(HEADER_SIZE))
print(平均下载速度:%d bytes/s %(SPEED_DOWNLOAD))

#关闭文件及curl对象
indexfile.close()
c.close()

 

python之web服务质量探测(pycurl模块)

标签:star   进度   进度条   ati   服务   header   重定向   连接   out   

原文地址:https://www.cnblogs.com/fuyuteng/p/12556338.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!