負載測試疑難排解
更新:2007 年 11 月
本主題列出在 Visual Studio Team System Test 版中使用負載測試時發生的下列常見問題。
無法使用 SQL 追蹤
執行測試時發生錯誤 (電腦 xyz) 無法存取結果儲存機制:無效的物件名稱 'LoadTestRun'
LoadTestCounterNotFoundException 錯誤
LoadTestResultsCollectorSlowException
LoadTestErrorLimitExceededException 錯誤
沒有任何代理程式電腦符合選取準則
無法存取負載測試結果儲存機制
無法產生預期的負載
多核心電腦上的負載產生限制
無法使用 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 測試以修正此錯誤。
沒有任何代理程式電腦符合選取準則
當您在 Rig 上執行測試時,可能會接收到下列訊息:
沒有任何代理程式電腦符合選取準則
當一個測試在 Rig 上執行時,您可以指定連接至控制器之代理程式的選取準則。例如,您可以指定只有特定作業系統的代理程式會用以執行測試。如果沒有指定準則,則所有連接至控制器的代理程式都會用以執行測試。如果沒有任何代理程式電腦符合選取準則,則不會執行測試。
若要修正沒有代理程式符合選取準則的問題,請遵循下列步驟:
在 [測試] 功能表上,指向 [編輯測試回合組態],然後按一下目前使用中的組態。
注意事項:
若要找到目前使用中的組態,請在 [測試] 功能表上,指向 [選取現用測試回合組態]。使用中的組態前面會有核取記號。
在清單方塊中,按一下 [控制器和代理程式]。
在 [名稱和值] 方格中,將排除要用來執行測試之代理程式的準則刪除。
完成後,請按一下 [套用],然後按一下 [確定]。
無法存取負載測試結果儲存機制
當您執行負載測試時,可能會接收到下列訊息:
無法存取負載測試結果儲存機制
此錯誤的一個可能原因是,當您使用 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 Team System Test 版或 Visual Studio Team System,負載產生只限於一個核心。
如果電腦執行的是 Visual Studio Team System Test Load Agent,則負載產生不受限,可在所有核心和處理器上執行。