Freigeben über


Testen von Windows Store-Apps mit Tests der codierten UI

Überprüfen von Windows Store-Apps mit Tests der codierten UI

Erstellen einer einfachen Windows Store-App

  1. Wenn Sie Tests der codierten UI für eine XAML-basierte Windows Store-App ausführen möchten, müssen Sie eine eindeutige Automatisierungseigenschaft zur Kennzeichnung der einzelnen Steuerelemente festlegen.

    Zeigen Sie im Menü Tools auf Optionen, und wählen Sie dann nacheinander Text-Editor, XAML und Verschiedenes aus.

    Aktivieren Sie das Kontrollkästchen für "Interaktive Elemente beim Erstellen automatisch benennen".

    Sonstige XAML-Optionen

  2. Erstellen Sie mit einer Visual C#- oder Visual Basic-Vorlage ein neues Projekt für eine leere XAML-basierte Windows Store-App.

    Leere Windows Store-App erstellen (XAML)

  3. Öffnen Sie im Projektmappen-Explorer die Datei "MainPage.xaml".Ziehen Sie aus der Toolbox ein Schaltflächen- und ein Textfeldsteuerelement auf die Entwurfsoberfläche.

    Windows Store-App entwerfen

  4. Doppelklicken Sie auf das Schaltflächensteuerelement, und fügen Sie dann den folgenden Code hinzu:

    private void button_Click_1(object sender, RoutedEventArgs e)
    {
        this.textBox.Text = this.button.Name;
    }
    
    Public NotInheritable Class MainPage
        Inherits Page
    
        Private Sub button_Click(sender As Object, e As RoutedEventArgs) Handles Button.Click
            Me.textBox.Text = Me.button.Name
        End Sub
    End Class
    
  5. Drücken Sie F5, um die Windows Store-App auszuführen.

Erstellen und Ausführen eines Tests der codierten UI für die Windows Store-App

  1. Erstellen Sie einen neues Projekt mit einem Test für codierten UI in der Windows Store-App.

    Neues Testprojekt für codierte UI erstellen (Windows Store-Apps)

  2. Wählen Sie mithilfe des Fadenkreuztools aus, dass Sie die UI-Zuordnung bearbeiten möchten.

    Option zum Bearbeiten der UI-Zuordnung und Hinzufügen von Assertionen auswählen

  3. Wählen Sie im Test-Generator für codierte UI mit dem Fadenkreuztool die App-Kachel aus, klicken Sie mit der rechten Maustaste auf AutomationId, und wählen Sie Wert in Zwischenablage kopieren aus.Der Wert in der Zwischenablage wird später beim Schreiben der Aktion zum Starten der App zu Testzwecken verwendet.

    AutomationId in die Zwischenablage kopieren

  4. Wählen Sie in der ausgeführten Windows Store-App mit dem Fadenkreuztool das Schaltflächen- und das Textfeldsteuerelement aus.Wählen Sie nach dem Hinzufügen jedes Steuerelements auf der Symbolleiste des Test-Generators für codierte UI die Schaltfläche Steuerelement zu UI-Steuerelementzuordnung hinzufügen aus.

    UI-Zuordnung ein Steuerelement hinzufügen

  5. Wählen Sie auf der Symbolleiste des Test-Generators für codierte UI die Schaltfläche Code generieren und dann Generieren aus, um Code für Änderungen an der UI-Steuerelementzuordnung zu erstellen.

    Code für die UI-Zuordnung generieren

  6. Wählen Sie die Schaltfläche aus, um im Textfeld einen Wert festzulegen.

    Zum Festlegen des Werts im Textfeld auf das Schaltflächen-Steuerelement klicken

  7. Wählen Sie das Textfeldsteuerelement mit dem Fadenkreuztool aus, und wählen Sie dann die Text-Eigenschaft aus.

    Text-Eigenschaft auswählen

  8. Fügen Sie eine Assertion hinzu.Diese wird beim Test verwendet, um die Richtigkeit des Werts sicherzustellen.

    Textfeld mit Fadenkreuztool auswählen und Assertion hinzufügen

  9. Generieren Sie Code für die Assertion, und fügen Sie diesen hinzu.

    Code für die Textfeld-Assertion generieren

  10. Visual C#

    Öffnen Sie im Projektmappen-Explorer die Datei "UIMap.Designer.cs", um den hinzugefügten Code für die Assert-Methode und die Steuerelemente anzuzeigen.

    Visual Basic

    Öffnen Sie im Projektmappen-Explorer die Datei "CodedUITest1.vb", klicken Sie im Code der CodedUITestMethod1()-Testmethode mit der rechten Maustaste auf die Assertionsmethode, die automatisch Me.UIMap.AssertMethod1() hinzugefügt wurde, und wählen Sie Gehe zu Definition aus.Hierdurch wird die Datei "UIMap.Designer.vb" im Code-Editor geöffnet, um den hinzugefügten Code für die Assert-Methode und die Steuerelemente anzuzeigen.

    WarnhinweisVorsicht

    Die Dateien "UIMap.designer.cs" oder "UIMap.Designer.vb" sollten nicht direkt geändert werden.Andernfalls werden die an der Datei vorgenommenen Änderungen bei jedem Generieren des Tests überschrieben.

    Assert-Methode

    public void AssertMethod1()
    {
        #region Variable Declarations
        XamlEdit uITextBoxEdit = this.UIApp1Window.UITextBoxEdit;
        #endregion
    
        // Verify that the 'Text' property of 'textBox' text box equals 'button'
        Assert.AreEqual(this.AssertMethod3ExpectedValues.UITextBoxEditText, uITextBoxEdit.Text);
    }
    
    Public Sub AssertMethod1()
        Dim uITextBoxEdit As XamlEdit = Me.UIApp2Window.UITextBoxEdit
    
        'Verify that the 'Text' property of 'textBox' text box equals 'button'
        Assert.AreEqual(Me.AssertMethod1ExpectedValues.UITextBoxEditText, uITextBoxEdit.Text)
    End Sub
    

    Steuerelemente

    #region Properties
    public XamlButton UIButtonButton
    {
        get
        {
            if ((this.mUIButtonButton == null))
            {
                this.mUIButtonButton = new XamlButton(this);
                #region Search Criteria
                this.mUIButtonButton.SearchProperties[XamlButton.PropertyNames.AutomationId] = "button";
                this.mUIButtonButton.WindowTitles.Add("App1");
                #endregion
            }
            return this.mUIButtonButton;
        }
    }
    
    public XamlEdit UITextBoxEdit
    {
        get
        {
            if ((this.mUITextBoxEdit == null))
            {
                this.mUITextBoxEdit = new XamlEdit(this);
                #region Search Criteria
                this.mUITextBoxEdit.SearchProperties[XamlEdit.PropertyNames.AutomationId] = "textBox";
                this.mUITextBoxEdit.WindowTitles.Add("App1");
                #endregion
            }
            return this.mUITextBoxEdit;
        }
    }
    #endregion
    
    #region Fields
    private XamlButton mUIButtonButton;
    
    private XamlEdit mUITextBoxEdit;
    #endregion
    
    #Region "Properties"
    Public ReadOnly Property UIButtonButton() As XamlButton
        Get
            If (Me.mUIButtonButton Is Nothing) Then
                Me.mUIButtonButton = New XamlButton(Me)
                Me.mUIButtonButton.SearchProperties(XamlButton.PropertyNames.AutomationId) = "button"
                Me.mUIButtonButton.WindowTitles.Add("App2")
            End If
            Return Me.mUIButtonButton
        End Get
    End Property
    
    Public ReadOnly Property UITextBoxEdit() As XamlEdit
        Get
            If (Me.mUITextBoxEdit Is Nothing) Then
                Me.mUITextBoxEdit = New XamlEdit(Me)
                Me.mUITextBoxEdit.SearchProperties(XamlEdit.PropertyNames.AutomationId) = "textBox"
                Me.mUITextBoxEdit.WindowTitles.Add("App2")
            End If
            Return Me.mUITextBoxEdit
        End Get
    End Property
    #End Region
    
    #Region "Fields"
    Private mUIButtonButton As XamlButton
    
    Private mUITextBoxEdit As XamlEdit
    #End Region
    
  11. Öffnen Sie im Projektmappen-Explorer die Datei "CodedUITest1.cs" oder "CodedUITest1.vb".Nun können Sie der CodedUTTestMethod1-Methode Code für die zum Ausführen des Tests erforderlichen Aktionen hinzufügen, indem Sie die der UIMap hinzugefügten Steuerelemente verwenden:

    1. Starten Sie die Windows Store-App mithilfe der Automation ID-Eigenschaft, die Sie zuvor in Zwischenablage kopiert haben:

      XamlWindow.Launch("8ebca7c4-effe-4c86-9998-068daccee452_cyrqexqw8cc7c!App")
      
      XamlWindow myAppWindow = XamlWindow.Launch("7254db3e-20a7-424e-8e05-7c4dabf4f28d_cyrqexqw8cc7c!App");
      
    2. Fügen Sie eine Geste hinzu, um auf das Schaltflächensteuerelement zu tippen:

      Gesture.Tap(this.UIMap.UIApp1Window. UIButtonButton);
      
      Gesture.Tap(Me.UIMap.UIApp2Window. UIButtonButton)
      
    3. Überprüfen Sie, ob der Aufruf der automatisch generierten Assert-Methode nach dem Starten der Anwendung und dem Tippen auf die Schaltfläche erfolgt:

      this.UIMap.AssertMethod1();
      
      Me.UIMap.AssertMethod1()
      

    Nach dem Hinzufügen des Codes sollte die CodedUITestMethod1-Testmethode wie folgt aussehen:

    [TestMethod]
    public void CodedUITestMethod1()
    {
        // To generate code for this test, select "Generate Code for Coded UI Test" from the shortcut menu and select one of the menu items.
    
        // Launch the app.
        XamlWindow myAppWindow = XamlWindow.Launch("7254db3e-20a7-424e-8e05-7c4dabf4f28d_cyrqexqw8cc7c!App");
    
        // Tap the button.
        Gesture.Tap(this.UIMap.UIApp1Window.UIButtonButton);
    
        this.UIMap.AssertMethod1();
    }
    
    <CodedUITest(CodedUITestType.WindowsStore)>
    Public Class CodedUITest1
    
        <TestMethod()>
        Public Sub CodedUITestMethod1()
            '            
            ' To generate code for this test, select "Generate Code for Coded UI Test" from the shortcut menu and select one of the menu items.
            '
    
            ' Launch the app.
            XamlWindow.Launch("8ebca7c4-effe-4c86-9998-068daccee452_cyrqexqw8cc7c!App")
    
            '// Tap the button.
            Gesture.Tap(Me.UIMap.UIApp2Window.UIButtonButton)
    
            Me.UIMap.AssertMethod1()
        End Sub
    
  12. Erstellen Sie den Test, und führen Sie diesen anschließend mit dem Test-Explorer aus.

    Coded UI-Test vom Test-Explorer ausführen

    Die Windows Store-App wird gestartet, die Aktion für das Tippen auf die Schaltfläche wird abgeschlossen, und die Text-Eigenschaft des Textfelds wird mithilfe der Assert-Methode mit einem Wert versehen und überprüft.

    Coded UI-Test wird ausgeführt

    Nach Abschluss des Tests wird im Test-Explorer das erfolgreiche Ergebnis angezeigt.

    Der erfolgreiche Test wird im Test-Explorer angezeigt

Fragen und Antworten

  • F: Warum wird im Dialogfeld "Test der codierten UI" unter "Code generieren" nicht die Option zum Aufzeichnen des Tests der codierten UI angezeigt?

    A: Die Option zum Aufzeichnen wird für Windows Store-Apps nicht unterstützt.

  • F: Kann ich einen Test der codierten UI für Windows Store-Apps auf Grundlage von WinJS erstellen?

    A: Nein, nur XAML-basierte Apps werden unterstützt.

  • F: Kann ich auf einem Computer, auf dem Windows 8 nicht ausgeführt wird, Tests der codierten UI für Windows Store-Apps erstellen?

    A: Nein, die Vorlage "Testprojekt für codierte UI (Windows Store-Apps)" steht nur unter Windows 8 zur Verfügung.

  • F: Warum kann ich den Code in der Datei "UIMap.Designer" nicht ändern?

    A: Alle Codeänderungen, die Sie an der Datei "UIMapDesigner.cs" vornehmen, werden jedes Mal überschrieben, wenn Sie Code mit dem UIMap – Test-Generator für codierte UI generieren.Wenn Sie eine aufgezeichnete Methode ändern müssen, müssen Sie sie in die UIMap.cs-Datei kopieren und umbenennen.Die Datei "UIMap.cs" kann verwendet werden, um Methoden und Eigenschaften in der Datei "UIMapDesigner.cs" zu überschreiben.Sie müssen den Verweis auf die ursprüngliche Methode in der Datei "Coded UITest.cs" entfernen und ihn durch den umbenannten Methodennamen ersetzen.

Siehe auch

Konzepte

Überprüfen von Code mithilfe der Benutzeroberflächenautomatisierung

Festlegen einer eindeutigen Automatisierungseigenschaft für Windows Store-Steuerelemente für Tests