Python脚本测试cdn节点状态
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python脚本测试cdn节点状态相关的知识,希望对你有一定的参考价值。
情景:
公司某晚上cdn服务商的节点突然崩溃导致某些网页无法打开或打开缓慢,之前测试cdn节点状态基本采用更改host文件的逐个访问的方式,费时费力,便想通过脚本来完成这项cdn节点状态测试。主要采用了xlrd(读表格数据)、httplib(绑定cdn节点进行访问及状态获取)、xlsxwriter(写测试结果)。脚本从制定格式的表格(data.xlsx)中读取数据并输出到另一张表格(result.xlsx)
脚本写的比较随意,各种不规范,后续会进行跟进,附代码:
1 # -*- coding: utf-8 -*- 2 import xlrd 3 import httplib 4 import hashlib 5 import xlsxwriter 6 7 def cdntest(ip,url,dn,result,ro): 8 try: 9 conn=httplib.HTTPConnection(ip) #IP地址 10 conn.request(method="GET", #以GET的方式发送请求www.ci123.com 11 url=url, #请求的web路径 12 headers={‘Host‘:dn, #请求头里面的主机名, 13 "User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, lik e Gecko) Chrome/33.0.1750.152 Safari/537.36",#模拟浏览器 14 "Referer":"im is test"}) #请求来源 15 response=conn.getresponse() #获取CDN的回应内容信息 16 print i #输出IP 17 print response.status #输出http状态码 18 print response.getheaders() #打印回应头信息,以列表嵌元组的方式表示 19 print hashlib.md5(response.read()).hexdigest() #读取回应的内容信息,再计算出MD5值 20 conn.close() #链接关闭 21 result.write(ro, 3, response.status) 22 except: 23 print " ====================================" 24 print "|| "+ip+" error ||" 25 print " ====================================" 26 result.write(ro, 3, "error") 27 28 resultbook=xlsxwriter.Workbook(‘result.xlsx‘) 29 result=resultbook.add_worksheet() 30 result.write(‘A1‘,u‘域名‘) 31 result.write(‘B1‘,u‘路径‘) 32 result.write(‘C1‘,u‘IP‘) 33 result.write(‘D1‘,u‘状态‘) 34 35 data=xlrd.open_workbook(‘data.xlsx‘) 36 table = data.sheets()[0] 37 nrows = table.nrows #行数 38 ncols = table.ncols #列数 39 colnames = table.row_values(0) #某一行数据 40 list =[] 41 for rownum in range(1,nrows): 42 row = table.row_values(rownum) 43 if row: 44 app = {} 45 for i in range(len(colnames)): 46 app[colnames[i]] = row[i] 47 list.append(app) 48 49 ro=1 50 for row in list: 51 url=row[‘URL path‘] 52 #print url 53 ip=row[‘CDN IP‘] 54 #print ip 55 dn=row[‘Domain Name‘] 56 #print dn 57 result.write(ro, 0, dn) 58 result.write(ro, 1, ip) 59 result.write(ro, 2, url) 60 cdntest(ip,url,dn,result,ro) 61 ro=ro+1 62 resultbook.close() 63 print "done"
说明:
输入表格格式(部分):data.xlsx:
Domain Name为公司顶级域名,CDN IP为cdn节点IP,URL path为网页路径。
将数据按格式存入表格中放在工程目录下,名称为data.xlsx
运行结果(部分):
命令行输出:
测试记过自动输出到表格中(result.xlsx):
以上是关于Python脚本测试cdn节点状态的主要内容,如果未能解决你的问题,请参考以下文章
Ubuntu服务器性能测试脚本serverreview-benchmark
;~ 小部分AutoHotkey源代码片段测试模板2019年10月9日.ahk