Asp net

19
ASP.NET 負載測試 2011

Transcript of Asp net

Page 1: Asp net

ASP.NET 負載測試

2011

Page 2: Asp net

原始架構

原始架構

Page 3: Asp net

使用瀏覽器測試

Page 4: Asp net

瀏覽器無法大量測試

CRASH!!!

Page 5: Asp net

HTTP Request/Response

7 METHOD for HTTP RequestGET、POST、HEAD、OPTIONS、TRACE、PUT、DELETE

GET /path/file.html HTTP/1.0 From: [email protected] User-Agent: HTTPTool/1.0 [blank line here]

HTTP/1.0 200 OK Date: Fri, 31 Dec 1999 23:59:59 GMT Content-Type: text/html Content-Length: 1354 <html> <body>

Page 6: Asp net

透過HTTP Proxy進行側錄

GET /index.asp HTTP/1.0HTTP/1.0 200 OKGET /login.asp HTTP/1.0HTTP/1.0 200 OK

Page 7: Asp net

Web Test Automation

Web Test (網頁測試)將一個操作情境錄製,變成可以自動化操作的測試案例。

用於檢驗網站是否可以正常回應某一項操作。

Load Test (負載測試) 重複不斷進行一個錄製好的測試案例,直到完成設定的測試量。

檢視網站是否在大量的操作同時進行下,仍維持正常回應。

Page 8: Asp net

網頁測試工具

Linux● ab

ab -n 1000 -c 100 http://192.192.216.94/Default.aspx●wbox

wbox http://192.192.216.94/Default.aspx 100 clients 10

Apache● JMeter

Microsoft Visual StudioTeam System Web Test●Visual Studio 2010 Ultimate● Fiddler2● neXpert (Fiddler add-on)

Page 9: Asp net

操作網頁 (Internet Explorer)

側錄操作過程 (Fiddler)

建立測試專案 (Visual Studio)

Page 10: Asp net

負載測試的技巧

●必須先製作單一操作下不會發生錯誤的網頁測試案例

●先由合理的小數量開始進行

●將會造成錯誤的項目剔除(某些不存在檔案造成的404 error)

●以測試動態網頁(.aspx, .ashx)為主,靜態資料(.jpg, .gif, .css)必須剔除

●觀察負載測試期間伺服器的處理器、記憶體、磁碟狀況

●錯誤率的目標為 0%

●改善的目標為每秒平均回應數量

Page 11: Asp net

Visual Studio Web Test Step By Step 1/3

安裝軟體

1.Visual Studio Ultimate 2010 (Service Pack 1)2. Fiddler2 (.NET Framework required)3. neXpert (Fiddler add-on)

Page 12: Asp net

Visual Studio Web Test Step By Step 2/3

Fiddler操作步驟

1.先關閉IE瀏覽器2.打開Fiddler3.打開IE瀏覽器進行網頁操作4.一邊操作一邊觀察Fiddler側錄的項目5.將不必要的項目剔除6.完成7. File > Export Sessions > All Sessions > 選 Visual Studio

WebTest8.儲存 test1.webtest

Page 13: Asp net

Visual Studio Web Test Step By Step 3/3

Visual Studio操作步驟

1.檔案 > 新增專案 > 測試專案 > 測試文件 > 選測試專案 > 確定2.方案總管 > 在專案名稱按右鍵 > 加入 > 現有項目 > 選擇

test1.webtest3.打開test1.webtest > 執行測試4.方案總管 > 在專案名稱按右鍵 > 加入 > 負載測試 > (下一

步...) > 將test1加到測試混合 > (下一步...完成...)5.進行測試(負載測試) > 觀察關鍵指標、回應時間變化

Page 14: Asp net

JMeter Step By Step 1/2

工作台(右鍵) > 新增 > 非測試元素 > HTTP代理伺服器

測試計畫(右鍵) > 新增 > Threads (Users) > 執行緒群組

測試計畫(右鍵) > 新增 > 設定元素 > HTTP要求預設值 (填寫)

HTTP代理伺服器 > 開始

瀏覽器 > 設定代理伺服器 > (進行網頁操作,產生側錄資料)

HTTP代理伺服器 > 停止 (執行緒群組中產生記錄) > 彙整報告

Page 15: Asp net

JMeter Step By Step 2/2

測試計畫(右鍵) > 新增 > 接聽 > 彙整報告

執行 > 開始

Page 16: Asp net

網站系統實作的記錄

應用程式記錄

時間                    事件                       備註                                       200105151328 使用者登入           帳號名稱=00001200105151402 選課確認               帳號名稱=00001, 課程代號=200105151402 資料庫寫入錯誤   SQL ERROR ....

Page 17: Asp net

記錄

伺服器狀態報表(cacti)

Page 18: Asp net

啟用SNMP (Windows)

開啟控制台 → 新增移除程式 → 新增移除Windows元件 → Management and Monitoring Tools → Simple Network Management Protocol

Page 19: Asp net

平衡負載的實作方式