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):


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM