共用方式為


HOW TO:建立自動程式碼 UI 測試

您可以使用 Visual Studio Premium 或 Visual Studio Ultimate 建立「自動程式碼 UI 測試」(Coded UI Test),該項測試可以測試應用程式的介面是否正確運作。 自動程式碼 UI 測試執行應用程式使用者介面控制項的動作,並驗證正確的控制項是否顯示正確的值。 如需自動程式碼 UI 測試所支援之平台和組態的詳細資訊,請參閱自動程式碼 UI 測試和動作記錄的支援組態和平台

建立自動程式碼 UI 測試時,會產生測試特有的 UIMap 物件,這個物件代表在 UI 中或您在測試錄製期間所建立的視窗、控制項、參數和判斷提示。 然後,您可以在這些 UI 物件上執行動作,以自動化使用者介面。 例如,您可將測試方法定義為按一下 Web 應用程式中的超連結、在文字方塊中輸入值,或進行分支作業並根據欄位中的值採用不同測試動作。

注意事項注意事項

您可以加入多個自動程式碼 UI 測試和多個 UI 對應物件與檔案,加速測試大型應用程式。 如需詳細資訊,請參閱測試含有多個 UI 對應的大型應用程式

自動程式碼 UI 測試類別是由套用至類別的 CodedUITestAttribute 所識別。

每個自動程式碼 UI 測試都是自動程式碼 UI 測試類別中的測試方法。 您可以使用 TestMethodAttribute,將多個測試方法加入至每個自動程式碼 UI 測試類別,並且識別每個自動程式碼 UI 測試方法。

您的測試方法也可以加入 UI 測試控制項的驗證程式碼,以取得 UI 測試控制項的屬性值。 測試方法可以使用 Assert 陳述式,比較屬性的實際值與預期值。 這個比較結果會決定測試的結果。 每次執行自動程式碼 UI 測試時,您都可以分析測試結果。如果測試失敗,您也可以查看或儲存判斷提示失敗的詳細資料。

建立自動程式碼 UI 測試時,下列檔案會加入至測試專案:

檔案

描述

CodedUITest1.cs

包含自動程式碼 UI 測試類別、測試方法和判斷提示。

UIMap.uitest

包含 UIMap 類別的 XML 模型,包括所有視窗、控制項、屬性、方法、參數、動作和判斷提示。

UIMap.Designer.cs

包含 UIMap.uitest 檔案中之 XML 的程式碼表示。 請勿編輯這個檔案。

UIMap.cs

包含 UIMap 類別的其他程式碼。 您可以在這個檔案中放入 UI 對應的任何自訂。

下列組件會做為參考加入到測試專案中:

  • Microsoft.VisualStudio.QualityTools.CodedUITestFramework

  • Microsoft.VisualStudio.QualityTools.UnitTestFramework

  • Microsoft.VisualStudio.TestTools.UITest.Common

  • Microsoft.VisualStudio.TestTools.UITest.Extension

  • Microsoft.VisualStudio.TestTools.UITesting

若要建立自動程式碼 UI 測試

若要建立自動程式碼 UI 測試

  1. 執行下列其中一項工作:

    1. 在 [方案總管] 中,以滑鼠右鍵按一下測試專案、指向 [加入],再按一下 [自動程式碼 UI 測試]。

    2. 在 [測試清單編輯器] 或 [測試檢視] 視窗中,以滑鼠右鍵按一下該視窗,再按一下 [新增測試]。 在 [加入新測試] 對話方塊中,按一下 [自動程式碼 UI 測試],再按一下 [確定]。

    3. 在 [測試] 功能表上按一下 [新增測試]。 在 [加入新測試] 對話方塊中,按一下 [自動程式碼 UI 測試],再按一下 [確定]。

    [產生程式碼] 對話方塊隨即出現。

  2. 從這個對話方塊中,可以選取要用來在自動程式碼 UI 測試中建立 UI 測試控制項的方法:

    方法

    動作

    後續步驟

    錄製待測應用程式中的動作,修改 UI 對應或加入判斷提示

    按一下 [錄製動作、編輯 UI 對應或加入判斷提示]

    HOW TO:透過記錄待測應用程式產生自動程式碼 UI 測試

    使用現有的動作記錄

    按一下 [使用現有的動作記錄]

    HOW TO:從動作記錄產生自動程式碼 UI 測試

    所有這些方法都會在測試專案中建立自動程式碼 UI 測試類別 (該類別具有 [CodedUITest] 屬性),並會針對這個類別開啟檔案。 類別以具有 [TestMethod] 屬性的測試方法填入。 [方案總管] 會顯示測試專案中的新測試檔案。

    注意事項注意事項

    如果按一下 [取消],也會建立自動程式碼 UI 測試。 您可以手動將程式碼加入至此類別,以建立自動程式碼 UI 測試。 或者,您可以遵循 [後續步驟] 資料行中的程序步驟,使用表格列出的其他方法。

範例

下列程式碼範例顯示被指派測試分類值 Priority1 的自動程式碼 UI 測試類別和測試方法。 測試方法用於計算將兩個數相加的簡式計算器應用程式,可驗證是否已正確將它們相加,如果正確,此測試才算成功。

AddTwoNumbers() 和 AssertForAdd() 這兩個 UI 對應方法的程式碼位於 UI 對應的不可編輯部分,不能直接編輯此程式碼。 不過,您可以從 UI 對應複製產生的程式碼,予以修改,並在 CodedUITest1 類別中建立替代方法或其他方法。 如需詳細資訊,請參閱自動程式碼 UI 測試的最佳作法

以特定資料建立自動程式碼 UI 測試之後,您可能要以不同的資料集執行自動程式碼 UI 測試數次,以測試不同的條件。 若要這樣做,您可以將參數從資料來源加入至自動程式碼 UI 測試,以建立資料驅動型自動程式碼 UI 測試。 如需詳細資訊,請參閱 HOW TO:建立資料驅動型自動程式碼 UI 測試

[CodedUITest]
public class CodedUITest1
{
    public CodedUITest1()
    {
    }

    [TestCategory("Priority1"), TestMethod]
    public void CodedUITestMethod1()
    {
        // To generate code for this test, select "Generate Code" from 
        // the shortcut menu and select one of the menu items.
        this.UIMap.AddTwoNumbers();
        this.UIMap.AssertForAdd();
    }
}

請參閱

參考

UIMap

Assert

概念

使用自動化 UI 測試進行使用者介面測試

自動程式碼 UI 測試的最佳作法

自動程式碼 UI 測試和動作記錄的支援組態和平台

其他資源

測試含有多個 UI 對應的大型應用程式