共用方式為


負載測試中測試控制器和測試代理程式的疑難排解策略

本主題會列出您在 Visual Studio Ultimate 中使用測試控制器和測試代理程式時遇到的常見問題。

無法收集測試代理程式電腦上的效能計數器

設定測試控制器電腦上的記錄層次

將測試控制器繫結至網路介面卡

需求

  • Visual Studio Ultimate

無法收集測試代理程式電腦上的效能計數器

當您執行負載測試時,若您嘗試連接至測試代理程式電腦並收集效能計數器,便可能會接收到錯誤。 「遠端登錄」服務是負責提供效能計數器資料給遠端電腦的服務。 根據預設,在執行 Windows Vista 的電腦上,遠端登錄服務並不會自動啟動。 若要修正此問題,請手動啟動「遠端登錄」服務。

注意事項注意事項

您可以在 [控制台] 中存取 [遠端登錄] 服務。選擇 [系統管理工具],然後選擇 [服務]。

造成這個問題的另一個原因,是您沒有讀取效能計數器的足夠權限。 對於本機測試回合,執行測試的使用者帳戶必須是 [Power Users] 群組 (或更高) 的成員,或 [Performance Monitor Users] 群組的成員。 對於遠端測試回合,設定控制器執行的帳戶必須是 [Power Users] 群組 (或更高) 的成員,或 [Performance Monitor Users] 群組的成員。

設定測試控制器電腦上的記錄層次

您可以在測試控制器電腦上控制記錄層次。 當您針對在環境上執行負載測試所發生的問題嘗試加以診斷時,這便很有用。

若要設定測試控制器電腦上的記錄層次

  1. 停止測試控制器服務。 在命令提示字元輸入 net stop vsttcontroller。

  2. 開啟 QTController.exe.config 檔案。 此檔案位於控制器的安裝目錄中。

  3. 在該檔案的系統診斷區段中,編輯 EqtTraceLevel 參數的項目。 您的程式碼應該會與以下相似:

    <system.diagnostics>
        <trace autoflush="true" indentsize="4">
            <listeners>
                <add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="d:\VSTestHost.log" />
            </listeners>
        </trace>
        <switches>
            <!-- You must use integral values for "value":
                    0 = off, 
                    1 = error,
                    2 = warn,
                    3 = info, 
                    4 = verbose. -->
            <add name="EqtTraceLevel" value="4" />
        </switches>
    </system.diagnostics>
    
  4. 儲存檔案。

  5. 啟動控制器服務。 在命令提示字元輸入 net start vsttcontroller。

這適用於測試控制器、測試代理程式服務和測試代理程式處理序。 在診斷問題時,啟用記錄以記錄這三個處理序,是很有用的做法。 這三個處理序的記錄層次設定程序都一樣,和前述針對測試控制器所指定的設定程序相同。 若要設定測試代理程式服務和代理程式處理序的記錄層次,請使用下列組態檔:

  • QTController.exe.config 控制器服務

  • QTAgentService.exe.config 代理程式服務

  • QTDCAgent(32).exe.config 用於 32 位元架構的代理程式資料配接器處理序。

  • QTDCAgent(64).exe.config 用於 64 位元架構的代理程式資料配接器處理序。

  • QTAgent(32).exe.config 用於 32 位元架構的代理程式測試處理序。

  • QTAgent(64).exe.config 用於 64 位元架構的代理程式測試處理序。

將測試控制器繫結至網路介面卡

當您嘗試設定測試代理程式時,可能會接收到下列錯誤:

Error 8110. Can not connect to the specified controller computer or access the controller object.

在有超過一張以上網路介面卡的電腦上安裝測試控制器,便可能導致此錯誤。

注意事項注意事項

另一個可能的情況是,您安裝測試代理程式成功,並在執行測試之前,都不會看到這個問題。

若要修正此錯誤,您必須將測試控制器繫結至其中一張網路介面卡。 您必須在測試控制器上設定 BindTo 屬性,然後變更測試代理程式以根據 IP 位址 (而非名稱) 參考至測試控制器。 請依下列程序的步驟執行。

取得網路介面卡的 IP 位址

  1. 選擇 [開始],然後選擇 [執行]。

    [執行] 對話方塊隨即出現。

  2. 輸入 cmd,然後選擇 [確定]。

    命令提示字元隨即開啟。

  3. 輸入 ipconfig /all。

    接著便會顯示您的網路介面卡 IP 位址。 請將控制器要繫結之網路介面卡的 IP 位址記錄下來。

若要將測試控制器繫結至網路介面卡

  1. 停止測試控制器服務。 在命令提示字元輸入 net stop vsttcontroller。

  2. 開啟 QTController.exe.config 檔案。 這個檔案位於 <磁碟機代號:>\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\。

  3. 將 BindTo 屬性的項目加入至應用程式設定。 指定控制器要繫結之網路介面卡的 IP 位址。 您的程式碼應該會與以下相似:

    <appSettings>
        <add key="LogSizeLimitInMegs" value="20" />
        <add key="AgentSyncTimeoutInSeconds" value="120" />
        <add key="ControllerServicePort" value="6901" />
        <add key="ControllerUsersGroup" value="TeamTestControllerUsers" />
        <add key="ControllerAdminsGroup" value="TeamTestControllerAdmins" />
        <add key="CreateTraceListener" value="no" />
        <add key="BindTo" value="<YOUR IP ADDRESS>" />
    </appSettings>
    
  4. 儲存檔案。

  5. 啟動測試控制器服務。 在命令提示字元輸入 net start vsttcontroller。

將測試代理程式連接至繫結控制器

  • 再次安裝測試代理程式。 這次請指定測試控制器的 IP 位址,而非測試控制器名稱。

這適用於測試控制器、測試代理程式服務和測試代理程式處理序。 在超過一個以上網路介面卡的電腦上所執行的每一個處理序,都必須設定 BindTo 屬性。 這三個處理序的 BindTo 屬性設定程序都一樣,和前述針對測試控制器所指定的設定程序相同。 若要設定測試代理程式服務與測試代理程式處理序的記錄層次,請使用在測試控制器電腦上設定記錄層次中列出的組態檔。

請參閱

概念

設定測試控制器和測試代理程式以進行負載測試

其他資源

使用 Test Controller 和 Test Agent,將負載測試回合分配給多部測試電腦