網站建構完成時,通常最容易被人質疑的就是這個網站可以承載的人數到底有多少?
嚴格講起來,這人數其實包含幾個意義 , 結合起來,比較容易模擬出來真實的使用情況
  • 同時在線的使用人數
  • 使用者在系統上的操作流程 
  • 使用者在系統上操作的頻率有多高

為了能了解系統環境的效能跟極限,通常我沒會使用壓力測試來針對目標網站進行模擬,以
利找出系統可能的效能瓶頸點,與相對應的極限值是否能夠滿足上線所需。通常,為了讓壓
測的資訊更有參考價值,會先從一個比較低強度的目標開始,將整個操作行為測到順暢,接
著,慢慢開始增加壓測強度,最後,使用與正式系統一樣或相似的架構來做壓測。
  • 使用單一電腦去針對單一網站測試
  • 多台電腦(Controller + Agents)對於單一網站測試
  • 多台電腦(Controller + Agents)對多網站測試(通常正式環境是多台,多Web Site+多Web API)

由於流量到達一定程度,使用者連線可能是同時進行,也因此,可以透過Controller-Agents的架構,由Controller控制Agents同時使用多帳號進行登入及登入後的操作,可以讓整個模擬的情況更像是真實環境

ref : http://msdn.microsoft.com/en-us/library/ms243155.aspx

除了設備強度的提升,更可以針對減少等待思考時間、混合瀏覽器等方式,增加其它的強
度,或者是針對單一服務,如Web Service / DB進行測試,可以了解單一服務及整體架構
的極限值大概到哪邊,針對弱項再來進行調整
這邊特別提到一個實務上遇到的狀況,保哥也曾經提過 
ref : http://blog.miniasp.com/post/2012/10/19/How-to-do-Web-Load-Test.aspx
測試的時候,短時間的穩定不代表長時間也一樣穩定,長時間測試可以測出記憶體用量是否
如預期一樣增減,是否有記憶體釋放的問題,長久下來,過多的記憶體使用量會造成系統的
反應出現狀況。
這邊以Visual Studio 2012 ( VS 2010 )建立測試專案來實作這次的壓測

1.首先,先開啟VS 2012 , 開啟一個Web Performance and Load Test Project (C# / VB.Net)
2.專案開啟後,會看到WebAndLoadTestProject這樣的字眼(如果你一開始沒有改命名)

3.仔細看一下專案下方,會有一個WebTest1.webtest,有了這個檔案,我們就可以開始錄製第

    一個腳本,模擬實際使用者操作的流程

 4.打開WebTest1.webtest,左上方會出現一個錄影按鈕

 5.點下去,會第一時間開啟IE,接著,就可以用這個瀏覽器開啟欲測試的網站,如果是第一

    次開啟,可能會看到,瀏覽器左邊跳出來的功能列顯示是灰色

6. 這邊灰色的狀況,主要來自於Plug-in沒有開啟,可以試著手動把它開啟
    
    IE / Settings / Internet Options / Programs / Manage add-ons / Toolbars and Extensions
    把Microsoft Web Test Recorder 相關字眼的功能開啟
   
    試著關閉IE,重新從VS 2012開啟錄影按鈕

 
7. 當你啟用後,就可以開起網站,進行操作行為的錄影,左邊會開始跑出很多項目,就是這
    段期間所造訪的網站
    
     ref : 參考資料

8. 錄製完畢,只要按下Stop,就可以回到VS 2012

9. 點下左邊的按鈕,按下RunTest,就可以跑一次剛剛所錄製的過程,有時候,會出現一些

    Failed的流程,通常是網站自己可能私下跑的流程,不在主流程上大部分是可以忽略的

10.如果點Test Run的時後跳出這個畫面,代表的是可能以經有一個既有的Test Run正在執行

11.可以開啟Test Results畫面,直接把它停掉 ( 預計約3秒在重新再按Test Run就可以重新執行 )

12.如果不關閉就把VS 2012關閉,你可能會看到這個畫面,提醒你,是不是要先關閉再離開


Leave a Reply

Your email address will not be published. Required fields are marked *