Python指令碼測試cdn節點狀態

來源:互聯網
上載者:User

標籤:ges   列印   ror   response   read   狀態   code   元組   alt   

情景:

公司某晚上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.com11                      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                    #輸出IP17         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=150 for row in list:51     url=row[‘URL path‘]52     #print url53     ip=row[‘CDN IP‘]54     #print ip55     dn=row[‘Domain Name‘]56     #print dn57     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+162 resultbook.close()63 print "done"

 

說明:

輸入表格格式(部分):data.xlsx:

                               Domain Name為公司頂級網域名稱,CDN IP為cdn節點IP,URL path為網頁路徑。

                              將資料按格式存入表格中放在工程目錄下,名稱為data.xlsx

運行結果(部分):

命令列輸出:

測試記過自動輸出到表格中(result.xlsx):

Python指令碼測試cdn節點狀態

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.