- 取得連結
- 以電子郵件傳送
- 其他應用程式
- 取得連結
- 以電子郵件傳送
- 其他應用程式
注意!
「Web 效能和負載測試」專案是 Visual Studio 2017 Enterprise 才有的功能 2017 以前的 Visual Studio 請參考網路上的相關資訊文章環境
- Visual Studio 2017 Enterprise
- ASP.Net Core WebAPI 專案
被測試的 WebAPI 應用程式
這邊使用 ASP.Net Core WebAPI 才進行「Web 效能和負載測試」的受測網際網路服務,使用預設的方法 "/api/values" 測試 IIS 回應時間。
專案原始碼(API 與 測試專案)可在 Github 中取得
https://github.com/txstudio/LoadTestUseVisualStudio
新增測試專案
新增「Web 效能和負載測試專案」。
在方案總管中選擇「新增項目」。
選擇項目「Web 效能測試」。
新增後會自動開啟 Internet Explorer,並開始進行錄製。
因為要測試的目標是 WebAPI,點選「停止錄製」,自訂 Web 請求設定。
在 WebTest 項目點選滑鼠右鍵選擇「加入 Web 服務要求」。
若要測試 HttpGet 方法的話,選擇「加入要求」。
開啟新增的「Web 服務要求」項目,設定屬性視窗中「字串內容」欄位,指定內容類型為「application/json」
內容類型就是 header 的 content-type 內容,此案例使用 WebAPI 並設定資料傳遞格式為 json,故要設定為 application/json。
點選「字串內容」輸入要傳遞的 json 文字。
輸入請求的 json 格式內容,測試時會使用此內容作為固定參數呼叫。
點選網址項目,設定屬性視窗中「Url」欄位。
變更「Url」欄位為呼叫的 WebAPI 完整網址。
屬性視窗中有「逾時(秒)」欄位可以進行設定,若呼叫超過此時間將會回傳逾時的錯誤訊息。
變更「逾時(秒)」欄位為 60。
進行負載測試時,當呼叫超過逾時時間秒數會顯示「錯誤」。
執行 WebTest 測試
在設定好的 WebTest 項目中點選右鍵開啟選單「執行測試」。
執行測試時會開啟測試視窗,並顯示測試中的相關訊息:狀態、時間、資料大小 ... 等。
「要求」頁簽可檢視呼叫的請求資訊。
「回應」頁簽可檢視回復的資訊。
新增負載測試
在「方案總管」中選擇「新增項目」。
加入新項目中選擇「負載測試」。
會開啟負載測試精靈,選擇「內部部屬負載測試」。
這裡指定取樣率為 5 秒(取樣率為執行測試時圖表呈現資料的時間間隔)。
接下來進入情節項目群組,選擇「不使用考慮時間」。
「負載模式」選擇「常數負載」,人數指定為 25 使用者。
「測試混合模型」選擇「按虛擬使用者人數」。
「測試混合」選擇點選加入設定要使用的測試項目。
指定要使用的測試專案。
選擇要使用的測試,這裡使用先前建立的 WebTest。
加入的 WebTest 會呈現在「選取的測試」方塊中,可指定多個測試。
加入完成後,會呈現選擇的測試項目在清單中。
「網路混合」在這裡選擇 LAN,可依照需要進行調整。
「瀏覽器混合」在此案例使用預設,請依情境進行必要的調整。
「計數器集合」可選擇要監看的電腦,此情境測試 API 網站與負載測試專案都在本機執行。
完成負載測試精靈後就會建立一個負載測試專案。
負載測試專案部分調整項目
日後要調整使用者設定在「情節」→「使用者登入」→「網路混和」項目。
在回合設定中可以變更 WebTest 連結 此項目在指定模式中會忽略設定,請參考提示文字訊息
執行負載測試
開啟負載測試檔案後點選左上角按鈕「執行負載測試」
畫面就會進入負載測試的執行畫面
依設定的條件,執行完畢後就會切換至「摘要」頁簽
摘要資訊呈現負載測試執行相關數據內容,最慢的頁面,最慢的測試項目 ... 等。
點選上方的「圖形」頁簽可以檢視圖表結果。
結語
透過負載測試可以發現在多人存取的情境下那些程式需要進行調整。要讓測試的結果更趨近於真實的話就可考慮 Azure 在負載測試提供的解決方案。
留言
張貼留言