負載測試疑難排解
本主題列出在 Visual Studio Ultimate中使用負載測試時發生的下列常見問題。
無法使用 SQL 追蹤
執行測試時發生錯誤。 (電腦 xyz) 無法存取結果儲存機制:無效的物件名稱 'LoadTestRun'
LoadTestCounterNotFoundException 錯誤
LoadTestResultsCollectorSlowException
LoadTestErrorLimitExceededException 錯誤
無法存取負載測試結果儲存機制
無法產生預期的負載
多核心電腦上的負載產生限制
需求
- Visual Studio Ultimate
無法使用 SQL 追蹤
當您在本機執行負載測試,而且啟用 SQL 追蹤時,可能會接收到下列訊息:
執行測試時發生錯誤。無法啟動 SQL 追蹤:您沒有執行 'SP_TRACE_CREATE' 的權限
若要在 Windows Vista 作業系統電腦上的本機執行負載測試中使用 SQL 追蹤,您必須是所要追蹤之 SQL Server 執行個體上的 sysadmin 角色成員。若要修正此問題,SQL Server 管理員必須將您加入至 sysadmin 角色。
執行測試時發生錯誤。(電腦 xyz) 無法存取結果儲存機制:無效的物件名稱 'LoadTestRun'
此錯誤表示負載測試資料庫結構描述尚未建立。您可以使用 Query Analyzer 執行 <Visual Studio 安裝資料夾>\Common7\IDE\ 中的 LoadTestResultsRepository.Sql 檔案以建立資料庫。
如果您使用的是 SQL Express,可以在前述的目錄中,於命令提示字元執行 "sqlcmd -S .\SQLEXPRESS -i loadtestresultsrepository.sql"。
警告 |
---|
參數會區分大小寫。您必須輸入大寫的 S 和小寫的 i。 |
如需詳細資訊,請參閱HOW TO:使用 SQL 建立負載測試結果儲存機制。
LoadTestCounterNotFoundException 錯誤
如果負載測試中的其中一個計數器集合包含某個效能計數器,但是在包含該效能計數器的效能計數器分類中卻找不到它時,便會發生此錯誤。如果您已將該效能計數器加入至計數器集合,可能是效能計數器的名稱拼錯了。也有可能是因為定義效能計數器的較新版本軟體元件已經將該效能計數器移除,使得該效能計數器已不存在。您可以從計數器集合將它移除,以修正錯誤,而不會遺失任何有用的資料。
LoadTestResultsCollectorSlowException 錯誤
這個錯誤表示測試控制器無法以負載測試的指定取樣率,從所有電腦收集效能計數器結果。當從負載測試的計數器集合對應所指定的不同電腦收集許多效能計數器時,便會發生此錯誤。當測試代理程式與測試控制器在同一部電腦上執行時,可能也會發生此錯誤。您可以藉由增加負載測試的取樣率修正此錯誤。
LoadTestLimitExceededException 錯誤
當同類型的錯誤發生超過 1000 或更多個時,便會發生此錯誤。這通常表示負載測試下所執行的測試有問題。例如,如果您的 Web 效能測試對找不到的 URL 發出要求,您應該改正 Web 效能測試以修正此錯誤。
無法存取負載測試結果儲存機制
當您執行負載測試時,可能會接收到下列訊息:
無法存取負載測試結果儲存機制
此錯誤的一個可能原因是,當您使用 SQLCMD 命令列公用程式設定負載測試結果儲存機制時,參數名稱指定了不正確的大小寫。下列程式碼是在名為 ContosoServer1 的伺服器上設定負載測試結果儲存機制的命令列範例:
SQLCMD -S ContosoServer1 -U <user name> -P <password> -i loadtestresultsrepository.sql
警告 |
---|
參數會區分大小寫。您必須輸入大寫的 S、U 和 P,以小寫的 i。 |
如需詳細資訊,請參閱HOW TO:使用 SQL 建立負載測試結果儲存機制。
無法產生預期的負載
當您執行負載測試時,常見的問題是無法產生您所預期的負載。下列表格列出一些導致此問題的可能原因:
考慮時間或虛擬使用者數目限制了最大的負載。 |
如果開啟考慮時間,它會限制每個虛擬使用者可以送出查詢的比例。例如,每個要求的考慮時間為 5 秒,會產生每個虛擬使用者每秒 0.2 個查詢的上限。您可以依照偏好,嘗試下列其中一項變更:
警告
關閉考慮時間會對測試引擎造成很大影響。如果您關閉考慮時間,請減少虛擬使用者的數目。
|
Web 效能測試的 Proxy 屬性設為「預設」。 |
Web 效能測試中的 Proxy 設定使用「預設」是很方便的,因為這樣會啟用自動 Proxy 伺服器偵測。不過,使用「預設」做為 Proxy 設定,會導致負載測試中的效能問題,而且會大大降低最大處理量。當您執行負載測試時,最好不要使用 Proxy 伺服器。如果需要 Proxy 伺服器,請指定 Proxy 伺服器的名稱,而不要用「預設」。 |
應用程式瓶頸。 |
請記住,負載測試工具的設計是用來發現您應用程式中的瓶頸。如果您因為資料庫或 CPU 瓶頸而有高回應時間的頁面,這會限制每個虛擬使用者發出的每秒查詢數目。剛開始先用少量負載,確保在緩慢增加負載的時候,回應時間維持在合理程度。您可以使用「回應時間目標」屬性,設定每個查詢的最大預期回應時間。 |
Web 伺服器的 CPU、記憶體或網路已經超過其上限。 |
如果 Web 伺服器的 CPU、記憶體或網路已經超過其上限,可能無法產生預期的負載。很可能您已經找到伺服器的負載限制了。您可以改善 Web 伺服器的 CPU、記憶體或網路。 |
產生負載之電腦的 CPU、記憶體或網路已經超過其上限。 |
您可能需要更強大的電腦,或更多測試代理程式電腦,以便產生所需的負載。 |
資料庫伺服器 (如果有的話) 的 CPU、記憶體或網路已經超過其上限。 |
如果資料庫伺服器的 CPU、記憶體或網路已經超過其上限,可能無法產生預期的負載。很可能您已經找到資料庫伺服器的負載限制了。您可以改善資料庫伺服器的 CPU、記憶體或網路。 |
多核心電腦上的負載產生限制
當您在多核心電腦上執行負載測試時,負載產生會受到下列限制:
如果電腦執行的是 Visual Studio Ultimate,負載產生只限於單一核心。
如果電腦正在執行 Visual Studio 測試代理者,負載產生會無限制,他可在全部的核心和處理器上執行。