1.探测web服务质量(HTTP状态码,请求延时,HTTP头信息,下载速度等)
web服务质量:1.服务可用性
2.服务响应速度
2.实例
import os,sys import pycurl import time URL = "http://www.baidu.com" ##目录的URL c = pycurl.Curl() ##实例化 c.setopt(pycurl.URL,URL) ##定义请求的URL常量 c.setopt(pycurl.CONNECTTIMEOUT, 5) ##定义请求连接等待时间 c.setopt(pycurl.TIMEOUT, 5) ##定义请求超时时间 c.setopt(pycurl.NOPROGRESS, 1) ##屏蔽下载进度条 c.setopt(pycurl.FORBID_REUSE, 1) ##完成交互后强制断开连接,不重用 c.setopt(pycurl.MAXREDIRS, 1) ##指定HTTP重定向的最大数为1 c.setopt(pycurl.DNS_CACHE_TIMEOUT,30) ##设置保存DNS信息的时间为30S indexfile = open(os.path.dirname(os.path.realpath(__file__))+"/content.txt","wb") c.setopt(pycurl.WRITEHEADER, indexfile) ##将返回的HTTP HEADER定向到indexfile c.setopt(pycurl.WRITEDATA, indexfile) ##将返回的HTML内容定向到indexfile文件对象 try: c.perform() ##提交请求 except Exception,e: print "error" indexfile.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 "传输开始时间: %2.f ms" %(STARTTRANSFER_TIME*1000) print "传输结束总时间: %.2f ms" %(TOTAL_TIME*1000) print "下载数据包大小: %d bytes/s" %(SIZE_DOWNLOAD) print "HTTP头部大小: %d byte" %(HEADER_SIZE) print "平均下载速度:%d bytes/s"%(SPEED_DOWNLOAD) indexfile.close() ##关闭文件 c.close() ##关闭Curl对象
测试
原文地址:http://12314711.blog.51cto.com/12304711/1971518