2012年3月30日

Blitz 雲端網站壓力測試服務(Load Test)blitz.io

Blitz  網站負載測試雲端服務(blitz.io)

Blitz 是針對網站「壓力測試(Load Test)」需求打造的雲端服務,可以協助開發者評估及改善網站的效能。

Blitz
http://blitz.io/


Blitz 依照需求分級收費,但註冊之後可以得到免費的額度,免費方案可以模擬 250 使用者在一分鐘內對網站進行存取。如果要模擬 1000 位以上使用者(目前最高可達5萬)、一小時以上的測試,就必須以信用卡付費。

Blitz 可以用 Google 或 Facebook 帳號登入,接下來就可以開始 Play!

為了測試 Blitz 的功能,我使用 Cloud Foundry 建立一個 Ruby Sinatra 的 Web App,網址是「http://loadtest.cloudfoundry.com/」。開始使用 Blitz 需要先將網址輸入,它會驗證這組網址是否正常回應。


看到 *** MS 的回應及 HTTP/1.1 200OK,表示 Blitz 存取這組網址沒問題,但此時還沒有進行壓力測試,需要點一下「-p 1-250:60 http://loadtest.cloudfoundry.com」這行指令,加上 -p 1-250:60 代表進行最高 250 位使用者的測試,期間為 60 秒。


雖然點選指令以後就會開始執行測試,但第一次測試會回應失敗,因為 Blitz 必須防止壓力測試被濫用,否則壞心人士只要拿 Blitz 就可以惡意攻擊別人的網站。所以需要增加一些網站的設定,證明這個網站是接受 Blitz 進行測試。

相當幸運地,Blitz 預設提供的驗證程式碼,就是 Ruby Sinatra 專用。非 Sinatra 的使用者,只需要以 mu................. 這組驗證碼當做檔案名稱,建立一個包含數字驗證碼的文字檔,放在網站的根目錄下方。以這個例子來說,只要讓 http://loadtest.cloudfoundry.com/mu-2f5eccb1-0338f64d-6d88faad-74d6c823 能夠回傳數字 42 就是可以通過驗證。

get '/mu-2f5eccb1-0338f64d-6d88faad-74d6c823' do
    '42'
end

改完程式碼發佈後,再用 Blitz 進行測試;當測試開始進行,Blitz 可以將即時結果以超炫麗的 HTML5 圖表繪製出來。



以這個測試結果來說,網站很順利通過模擬 250 位使用者的壓力測試,測試是從 1 位使用者開始一直增加到 250 位結束,而回應時間都維持在穩定的 250ms 左右;當然,這個結果是可以預期的,因為 Cloud Foundry 是雲端 PaaS 服務,如果連 250 人都撐不住,那就太不可思議了。

最後 Blitz 會產生報表,可以列印出來。


在價格的部份,若要達到一般高負載網站常用的標竿「C10K」測試,每小時收費為  $39 USD,大約是 1200 元台幣。

若不透過 Blitz 的服務,而想要達到相同等級的測試,一般來說單靠開發者自己的電腦及頻寬可能不夠。常見的解決方案也是採用雲端的方式,例如利用 Script 建立 Amazon EC2 虛擬機器,自動建立測試需要的軟體環境及佈署測試端軟體,在利用多部虛擬機器及 Amazon 充沛的頻寬進行壓力測試;但這樣算下來,也需要花費不少虛擬主機租賃費用及開發測試程式的工時,除非經常需要進行壓力測試,否則只有在少數時候才進行網站調校所需的測試,也許使用 Blitz 之類的雲端服務會是相對划算的選擇。

沒有留言:

張貼留言

lyhcode by lyhcode
歡迎轉載,請務必註明出處!