Web 應用程序壓力工具通過實際模擬從 Web 應用程序請求頁的多個瀏覽器來激活測試環境,并允許通過從瀏覽器訪問想要包括到測試中的頁來記錄腳本。然后,該腳本可以在安裝有該應用程序的任何 Windows NT 或 Windows 2000 客戶端上保存和運行。因為 Web 應用程序壓力工具能夠模擬來自每個單獨工作站的多個客戶端,所以具有的可用客戶端計算機不必與生產應用程序具有的一樣多。
注意當運行壓力測試時,注意不要增加客戶端的壓力水平,以免測試計算機在線程間的上下文切換上花費的時間比實際運行所用的時間多。若要確保線程分布于各個客戶端,請在運行基于Web的應用程序測試時使用幾個客戶端,從而減輕一個客戶端計算機的資源限制。性能監視器為了有效地對數據訪問組件進行壓力測試并正確地診斷結果,使用監視和記錄運行統計的方法極為重要。性能監視器是隨 Microsoft Windows NT 和 Microsoft Windows 2000 一起提供的工具,它是適用于在 Internet Information Server 中和數據服務器上監視和記錄這些統計的最好工具。
其他工具除了在 Internet Information Server 上使用性能監視器外,還有必要監視數據服務器上的某些自定義計數器。大多數高性能數據服務器應用程序,例如 Microsoft SQL Server、Oracle 和 Microsoft Exchange Server,都包括自定義性能監視器計數器,可用于測定應用程序和其運行在的硬件的健康情況。
運行壓力測試認真地擬定了測試策略后,實際運行測試是容易的。性能測試的第一個任務是使用工具,例如 Microsoft Web 應用程序壓力工具,將壓力施加到 Web 站點并測量 Web 服務器每秒能處理的最大請求數。這是定量測量。第二個任務是確定哪一個資源阻止每秒請求數的提高,例如 CPU、內存或后端相關性,這個過程更具有藝術性,而不單是一種精確測量的技術。
首先,選擇打算運行的 ASP 頁。(尋找 Web 站點的最慢頁并使用這些頁。)具體的選擇取決于哪些頁最頻繁訪問數據庫并且具有最多或最復雜的查詢。該選擇非常重要:包括比必需的更多的頁比遺漏一些關鍵代碼路徑要好。如果適當的話,還可考慮讓測試應用程序按指定的順序訪問一系列頁,并像應用程序將在真實情況中所做的那樣,將 cookie 或查詢字符串傳遞到每一頁。
注意根據實際的應用程序,可能有必要為測試準備ASP頁。一些頁可能要求硬編碼通常由應用程序生成的和Web壓力工具不能動態生成的參數值。當在 Internet Information Server 中運行應用程序時,應該(使用性能監視器)監視以下計數器: Active Server Pages:每秒請求數、被拒絕的請求數、總隊列長度和當前會話數 Inetinfo process:專用字節數、虛擬字節數和打開句柄數 Processor:百分比用戶時間與百分比特權時間相比注意如果應用程序在Windows NT 4.0中自己的內存空間中運行(或者在Windows 2000中的Stress Properties頁上的設置為Application Protection: High [Isolated]),則應監視mtx.exe(或Windows 2000中的dllhost進程)而不是監視Inetinfo進程。
如下圖所示,性能監視器中的 Active Server Pages 每秒請求數計數器將顯示應用程序的實際吞吐量(此例中每秒的請求數為1.000)。該統計使您能夠診斷壓力下的 Internet Information Server 性能,并查明潛在的瓶頸。這反過來使您得以判斷應用程序以可接受的響應時間服務數量最多的用戶的能力。
圖 3:性能監視器
運行 ASP 技術的 Web 服務器從啟動時建立的池中給每頁分配一個線程;如果所有線程都已使用,后面的頁請求將被放置在隊列中。通過用性能監視器監視總的隊列長度,可以確定有多少客戶端正在等待服務器的響應。
兩個最常見的與壓力有關的非硬件數據庫問題是死鎖和鎖定并發。在數據服務器上,使用數據存儲區將提供的自定義性能監視器計數器時,應該至少監視下列內容: 鎖請求數 每秒死鎖數 每秒表鎖擴大數 用戶連接數 活動事務數
文章來源于領測軟件測試網 http://www.kjueaiud.com/