Freigeben über


Walkthrough: Creating, Editing and Maintaining a Coded UI Test

In dieser exemplarischen Vorgehensweise erstellen Sie eine einfache Windows Presentation Foundation (WPF)-Anwendung, um das Erstellen, Bearbeiten und Verwalten eines Tests der codierten UI zu veranschaulichen.Die exemplarische Vorgehensweise umfasst Lösungen zum Korrigieren von Tests, die aufgrund verschiedener Probleme mit den Zeitabläufen und der Steuerelementumgestaltung nicht mehr funktionieren.

Vorbereitungsmaßnahmen

Für diese exemplarische Vorgehensweise benötigen Sie:

  • Visual Studio Ultimate oder Visual Studio Premium.

Erstellen einer einfachen WPF-Anwendung

  1. Zeigen Sie im Menü Datei auf Neu, und klicken Sie dann auf Projekt.

    Das Dialogfeld Neues Projekt wird angezeigt.

  2. Im Bereich Installiert erweitern Sie Visual C# und wählen Sie dann Fenster aus.

  3. Stellen Sie sicher, dass die Dropdownliste für das Zielframework über dem mittleren Bereich auf .NET Framework 4.5 festgelegt ist.

  4. Wählen Sie im mittleren Bereich die Vorlage WPF-Anwendung aus.

  5. Geben Sie im Textfeld Name den Namen "SimpleWPFApp" ein.

  6. Wählen Sie einen Ordner zum Speichern des Projekts aus.Geben Sie im Textfeld Speicherort den Namen des Ordners ein.

  7. Klicken Sie auf OK.

    Der WPF-Designer für Visual Studio wird geöffnet und zeigt das MainWindow-Element des Projekts an.

  8. Öffnen Sie die Toolbox, sofern sie nicht geöffnet ist.Wählen Sie das Menü Ansicht aus, und wählen Sie dann Werkzeugkasten aus.

  9. Ziehen Sie unter dem Abschnitt Alle WPF-Steuerelemente ein Button-, ein CheckBox- und ein ProgressBar-Steuerelement auf das MainWindow-Element in der Entwurfsoberfläche.

  10. Wählen Sie das Button-Steuerelement aus.Ändern Sie im Eigenschaftenfenster den Wert für die Eigenschaft Content von Button in "Start".

  11. Wählen Sie das ProgressBar-Steuerelement aus.Ändern Sie im Eigenschaftenfenster den Wert für die Eigenschaft Maximum von 100 in 1000.

  12. Wählen Sie das Checkbox-Steuerelement aus.Löschen Sie im Eigenschaftenfenster die IsEnabled-Eigenschaft.

    Einfache WPF-Anwendung

  13. Doppelklicken Sie auf das Schaltflächen-Steuerelement, um ein Auswählensereignis hinzuzufügen.

    "MainWindow.xmal.cs" wird im Code-Editor mit dem Cursor im neuen button1_Choose-Ereignis angezeigt.

  14. Fügen Sie am oberen Rand der MainWindow-Klasse einen Delegaten hinzu.Der Delegat wird für die Statusanzeige verwendet.Fügen Sie den Delegaten mit dem folgenden Code hinzu:

            private delegate void ProgressBarDelegate(
            System.Windows.DependencyProperty dp, Object value);
    
  15. In der button1_Choose-Methode fügen Sie den folgenden Code hinzu:

                double progress = 0;
    
                ProgressBarDelegate updatePbDelegate =
            new ProgressBarDelegate(progressBar1.SetValue);
    
                do
                {
                    progress ++;
    
                    Dispatcher.Invoke(updatePbDelegate,
                        System.Windows.Threading.DispatcherPriority.Background,
                        new object[] { ProgressBar.ValueProperty, progress });
                    progressBar1.Value = progress;
                }
                while (progressBar1.Value != progressBar1.Maximum);
    
                checkBox1.IsEnabled = true;
    

Überprüfen der ordnungsgemäßen Ausführung der WPF-Anwendung

  1. Wählen Sie im Menü Debuggen die Option Debugging starten aus, oder drücken Sie F5.

  2. Wählen Sie Start aus.

    Die Statusanzeige sollte innerhalb einiger Sekunden vollständig abgeschlossen sein.Das Kontrollkästchen-Steuerelement ist jetzt aktiviert.

  3. Schließen Sie "SimpleWPFApp".

Erstellen und Ausführen eines Tests der codierten UI für "SimpleWPFApp"

  1. Klicken Sie im Projektmappen-Explorer, mit der rechten Maustaste auf die Projektmappe, wählen Hinzufügen aus und wählen dann Neues Projekt aus.

    Das Dialogfeld Neues Projekt hinzufügen wird angezeigt.

  2. Im Bereich Installiert erweitern Sie Visual C# und wählen Sie dann Test aus.

  3. Wählen Sie im mittleren Bereich die Vorlage aus. Testprojekt für codierte UI

  4. Klicken Sie auf OK.

    In Projektmappen-Explorer wird, das neue Test der codierten UI-Projekt, das CodedUITestProject1 genannt wird, zur Projektmappe. hinzugefügt.

    Das Dialogfeld Code für den Test der codierten UI generieren wird angezeigt.

  5. Wählen Sie die Option Aktionen aufzeichnen, UI-Zuordnung bearbeiten oder Assertionen hinzufügen aus und wählen Sie OK aus.

    UIMap – Test-Generator für codierte UI angezeigt wird und das Visual Studio-Fenster wird minimiert.

    Weitere Informationen zu den Optionen in diesem Dialogfeld finden Sie unter Erstellen von Tests der codierten UI.

  6. Suchen Sie die zuvor erstellte Anwendung "SimpleWPFApp", und führen Sie diese aus.Standardmäßig befindet sich die Anwendung unter folgendem Pfad: C:\Users\<Benutzername>\Documents\Visual Studio 2012\Projects\SimpleWPFApp\SimpleWPFApp\bin\Debug\SimpleWPFApp.exe.

  7. Erstellen Sie eine Desktopverknüpfung zur SimpleWPFApp-Anwendung.Klicken Sie mit der rechten Maustaste auf "SimpleWPFApp.exe", und wählen Sie Kopieren aus.Klicken Sie auf dem Desktop mit der rechten Maustaste, und wählen Sie die Option Verknüpfung einfügen aus.

    TippTipp

    Über eine Verknüpfung zur Anwendung können Tests der codierten UI für die Anwendung leichter hinzugefügt und geändert werden, da die Anwendung schnell gestartet werden kann.Sie müssen nicht zur Anwendung navigieren.Sie müssen die Anwendung zu einem späteren Zeitpunkt in dieser exemplarischen Vorgehensweise erneut ausführen.

  8. Wählen Sie Aufzeichnung starten auf dem UIMap - Test-Generator für codierte UI aus.Der Test-Generator für codierte UI ist nach wenigen Sekunden bereit.

  9. Führen Sie "SimpleWPFApp.exe" über die Desktopverknüpfung aus.

  10. Klicken Sie in "SimpleWPFApp" wählen Sie Start aus.

    Die Statusanzeige sollte innerhalb einiger Sekunden vollständig abgeschlossen sein.Das Kontrollkästchen-Steuerelement ist jetzt aktiviert.

  11. Wählen Sie das Feld für das CheckBox-Steuerelement aus.

  12. Schließen Sie die SimpleWPFApp-Anwendung.

  13. Klicken Sie auf dem UIMap - Test-Generator für codierte UI, wählen Code generieren aus.

  14. Geben Sie im Feld "Methodenname" Namen ein und klicken Sie auf Hinzufügen und generieren aus.Der Test der codierten UI wird nach wenigen Sekunden angezeigt und der Projektmappe hinzugefügt.

  15. Schließen Sie den UIMap – Test-Generator für codierte UI.

    Die Datei "CodedUITest1.cs" wird im Code-Editor geöffnet.

Ausführen des Tests der codierten UI

  • Suchen Sie in der Datei "CodedUITest1.cs" die CodedUITestMethod-Methode, klicken Sie mit der rechten Maustaste, und wählen Sie Tests ausführen aus.

    Während der Test der codierten UI ausgeführt wird, wird "SimpleWPFApp" angezeigt.Die Schritte, die Sie in der vorherigen Prozedur ausgeführt haben, werden ausgeführt.Beim Versuch, das Kontrollkästchen für das CheckBox-Steuerelement zu aktivieren, wird jedoch im Fenster "Testergebnisse" angezeigt, dass der Test fehlgeschlagen ist.Dies liegt daran, dass beim Test versucht wird, das Kontrollkästchen zu aktivieren, obwohl das CheckBox-Steuerelement deaktiviert ist, bis die Statusanzeige 100 Prozent abgeschlossen ist.Sie können dieses und ähnliche Probleme mit den UITestControl.WaitForControlXXX()-Methoden korrigieren, die für Tests der codierten UI verfügbar sind.Bei der nächsten Prozedur wird veranschaulicht, wie Sie das Problem, das bei diesem Test zu einem Fehler geführt hat, mit der WaitForControlEnabled()-Methode korrigieren können.Weitere Informationen finden Sie unter Making Coded UI Tests Wait For Specific Events During Playback.

Bearbeiten und erneutes Ausführen des Tests der codierten UI

  1. Klicken Sie im Fenster "Testergebnisse" mit der rechten Maustaste auf den fehlgeschlagenen Test, und wählen Sie Testergebnisdetails anzeigen aus.

    "CodedUITestMethod1[Results]" wird angezeigt.

  2. Im Abschnitt Fehlerstapelüberwachung wählen Sie den ersten Link neben TestProject1.UIMap.SimpleAppTest() aus.

    Die Datei "UIMap.Designer.cs" wird geöffnet. Die fehlerhafte Stelle wird im Code hervorgehoben:

    // Select 'CheckBox' check box
    uICheckBoxCheckBox.Checked = this.SimpleAppTestParams.UICheckBoxCheckBoxChecked;
    
  3. Um dieses Problem zu korrigieren, können Sie mithilfe der WaitForControlEnabled()-Methode festlegen, dass beim Test der codierten UI gewartet werden soll, bis das CheckBox-Steuerelement aktiviert ist, bevor mit dieser Zeile fortgefahren wird.

    WarnhinweisVorsicht

    Ändern Sie die Datei "UIMap.Designer.cs" nicht.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.

  4. Klicken Sie im Projektmappen-Explorer Suchen Sie, UIMap.uitest im Test der codierten UI-Projekt.

  5. Öffnen Sie das Kontextmenü für UIMap.uitest und wählen Sie Öffnen aus.

    Der Test der codierten UI wird im Editor für den Test der codierten UI angezeigt.Sie können nun den Test der codierten UI anzeigen und bearbeiten.

  6. Wählen Sie im Bereich UI-Aktion die Testmethode aus, die Sie in die Datei "UIMap.cs" oder "UIMap.vb" verschieben möchten. Dadurch vereinfachen Sie die Funktion für benutzerdefinierten Code, die beim erneuten Kompilieren des Tests nicht überschrieben wird.

  7. Wählen Sie die Schaltfläche Code verschieben auf der Symbolleiste des Editors für Tests der codierten UI aus.

  8. Ein Microsoft Visual Studio-Dialogfeld wird angezeigt.Sie warnt Sie, dass die - Methode aus der UIMap.uitest-Datei in die Datei "UIMap.cs" verschoben wird und dass Sie nicht mehr in der Lage sind, die - Methode mit dem Editor für Tests der codierten UI zu bearbeiten.Klicken Sie auf Ja.

    Die Testmethode wird aus der UIMap.uitest-Datei entfernt und nicht mehr im Bereich der UI-Aktionen angezeigt.Um die verschobenen Testdatei zu bearbeiten, öffnen Sie die Datei "UIMap.cs" im Projektmappen-Explorer.

  9. Klicken Sie auf der Symbolleiste Visual Studio wählen Sie Speichern aus.

    Die Aktualisierungen der Testmethode werden in der UIMap.Designer-Datei gespeichert.

    WarnhinweisVorsicht

    Nach dem Verschieben der Methode kann sie mit dem Editor für Tests der codierten UI nicht mehr bearbeitet werden.Sie müssen den benutzerdefinierten Code hinzufügen und ihn mit dem Code-Editor verwalten.

  10. Benennen Sie die Methode von SimpleAppTest() in ModifiedSimpleAppTest() um.

  11. Fügen Sie der Datei die folgende using-Anweisung hinzu:

    using Microsoft.VisualStudio.TestTools.UITesting.WpfControls;
    
  12. Fügen Sie die folgende WaitForControlEnabled()-Methode vor der Codezeile ein, die zuvor als Fehlerquelle ermittelt wurde:

    uICheckBoxCheckBox.WaitForControlEnabled();
    
    // Select 'CheckBox' check box
    uICheckBoxCheckBox.Checked = this.SimpleAppTestParams.UICheckBoxCheckBoxChecked;
    
  13. Suchen Sie in der Datei "CodedUITest1.cs" die CodedUITestMethod-Methode, und kommentieren Sie den Verweis auf die ursprüngliche SimpleAppTest()-Methode aus, oder benennen Sie ihn um. Ersetzen Sie ihn dann durch die neue ModifiedSimpleAppTest()-Methode:

    [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.
                // For more information on generated code, see https://go.microsoft.com/fwlink/?LinkId=179463
                //this.UIMap.SimpleAppTest();
                this.UIMap.ModifiedSimpleAppTest();
            }
    
  14. Wählen Sie im Menü Erstellen die Option Projektmappe erstellen.

  15. Klicken Sie mit der rechten Maustaste auf die CodedUITestMethod-Methode, und wählen Sie Tests ausführen aus.

  16. Dieses Mal führt der Test der codierten UI alle Schritte des Tests erfolgreich durch, und im Fenster "Testergebnisse" wird Erfolgreich angezeigt.

Umgestalten eines Steuerelements in "SimpleWPFApp"

  1. Wählen Sie in der Datei "MainWindow.xaml" im Designer das Schaltflächen-Steuerelement aus.

  2. Wählen Sie am oberen Rand des Eigenschaftenfensters den Wert button1 neben Button aus, und ändern Sie den Wert in "buttonA".

  3. Wählen Sie im Menü Erstellen die Option Projektmappe erstellen.

  4. Klicken Sie im Menü auf Test ausgewähltes Fenster und dann Testansicht aus.

  5. In, wählen Testname ausgewähltes CodedUITestMethod1 unter der Spalte und dann Auswahl ausführen in der Symbolleiste aus.

    Der Test schlägt fehl, da der Test der codierten UI das Schaltflächen-Steuerelement, das ursprünglich im UIMap als "button1" zugeordnet wurde, nicht finden kann.Auf diese Weise kann sich die Umgestaltung auf Tests der codierten UI auswirken.

  6. Klicken Sie im Fenster "Testergebnisse" mit der rechten Maustaste auf den fehlgeschlagenen Test, und wählen Sie Testergebnisdetails anzeigen aus.

    "CodedUITestMethod1[Results]" wird angezeigt.

  7. Im Abschnitt Fehlerstapelüberwachung wählen Sie den ersten Link neben TestProject1.UIMpa.SimpleAppTest() aus.

    Die Datei "UIMap.Designer.cs" wird geöffnet.Die fehlerhafte Stelle wird im Code hervorgehoben:

    // Choose 'Start' button
    Mouse.Click(uIStartButton, new Point(27, 10));
    

    Beachten Sie, dass in der Codezeile dieser Prozedur zuvor UiStartButton verwendet wurde. Dies war der UIMap-Name vor der Umgestaltung.

    Zur Behebung des Problems können Sie dem UIMap das umgestaltete Steuerelement mit dem Test-Generator für codierte UI hinzufügen.Sie können den Code des Tests wie in der nächsten Prozedur veranschaulicht aktualisieren.

Zuordnen des umgestalteten Steuerelements und Bearbeiten und erneutes Ausführen des Tests der codierten UI

  1. In der Datei "CodedUITest1.cs" in der CodedUITestMethod1()-Methode, wählen Sie, wählen Sie Code für den Test der codierten UI generieren und dann Test-Generator für codierte UI verwenden aus.

    Der UIMap – Test-Generator für codierte UI wird angezeigt.

  2. Führen Sie mithilfe der zuvor erstellten Desktopverknüpfung die Anwendung "SimpleWPFApp" aus, die Sie ebenfalls zuvor erstellt haben.

  3. Ziehen Sie auf dem UIMap – Test-Generator für codierte UI das Fadenkreuztool auf die Schaltfläche Start in "SimpleWPFApp".

    Die Schaltfläche Start ist mit einem blauen Rahmen versehen, und der Test-Generator für codierte UI braucht einige Sekunden, um die Daten für das ausgewählte Steuerelement zu verarbeiten. Dann werden die Steuerelementeigenschaften angezeigt.Beachten Sie, dass AutomationUId die Bezeichnung buttonA trägt.

  4. In den Eigenschaften für das - Steuerelement, wählen Sie den Pfeil in der linken oberen Ecke, um die UI-Steuerelementzuordnung zu erweitern.Beachten Sie, dass UIStartButton1 ausgewählt ist.

  5. In der Symbolleiste wählen Sie Steuerelement zu UI-Steuerelementzuordnung hinzufügen aus.

    Durch den Status am unteren Rand des Fensters wird die Aktion bestätigt, indem Das ausgewählte Steuerelement wurde der UI-Steuerelementzuordnung hinzugefügt angezeigt wird.

  6. Klicken Sie auf dem UIMap - Test-Generator für codierte UI, wählen Code generieren aus.

    Das Dialogfeld "Test-Generator für codierte UI – Code generieren" wird mit einem Hinweis angezeigt, dass keine neue Methode erforderlich ist und dass Code nur für die Änderungen an der UI-Steuerelementzuordnung generiert wird.

  7. Wählen Sie Generieren aus.

  8. Schließen Sie "SimpleWPFApp.exe".

  9. Schließen Sie "UIMap – Test-Generator für codierte UI".

    "UIMap – Test-Generator für codierte UI" benötigt einige Sekunden für die Verarbeitung der Änderungen an den UI-Steuerelementzuordnungen.

  10. Öffnen Sie im Projektmappen-Explorer die Datei "UIMap.Designer.cs".

  11. Erweitern Sie in der Datei "UIMap.Designer.cs" unter dem Konstruktor in der generierten Codeklasse UIMainWindow den Bereich Eigenschaften.Beachten Sie, dass die public WpfButton UIStartButton1-Eigenschaft hinzugefügt wurde.

  12. Erweitern Sie in der UIStartButton1-Eigenschaft den Suchkriterienbereich.Beachten Sie, dass SearchProperties auf "buttonA" festgelegt ist:

    public WpfButton UIStartButton1
            {
                get
                {
                    if ((this.mUIStartButton1 == null))
                    {
                        this.mUIStartButton1 = new WpfButton(this);
                        #region Search Criteria
                        this.mUIStartButton1.SearchProperties[WpfButton.PropertyNames.AutomationId] = "buttonA";
                        this.mUIStartButton1.WindowTitles.Add("MainWindow");
                        #endregion
                    }
                    return this.mUIStartButton1;
                }
            }
    

    Jetzt können Sie den Test der codierten UI ändern, um das neu zugeordnete Steuerelement zu verwenden.Wie in der vorherigen Prozedur angemerkt wurde, können Sie Methoden oder Eigenschaften im Test der codierten UI nur in der Datei "UIMap.cs" überschreiben.

  13. Fügen Sie in der Datei "UIMap.cs" einen Konstruktor hinzu, und geben Sie die SearchProperties-Eigenschaft der UIStartButton-Eigenschaft an, um die AutomationID-Eigenschaft mit dem Wert "buttonA": zu verwenden.

    public UIMap()
            {
                this.UIMainWindowWindow.UIStartButton.SearchProperties[WpfButton.PropertyNames.AutomationId] = "buttonA";
            }
    
  14. Wählen Sie im Menü Erstellen die Option Projektmappe erstellen.

  15. Wählen Sie in "Testansicht" unter der Spalte Testname den Eintrag CodedUITestMethod1 aus. Klicken Sie dann auf der Symbolleiste auf Auswahl ausführen.

    Dieses Mal führt der Test der codierten UI alle Schritte im Test erfolgreich aus.Im Fenster "Testergebnisse" wird der Status Erfolgreich angezeigt.

Externe Ressourcen

Ff977233.collapse_all(de-de,VS.110).gifVideos

Link zu Video

Link zu Video

Link zu Video

Ff977233.collapse_all(de-de,VS.110).gifRunden auf Lab

Virtuelles Lab MSDN: Einführung in das Erstellen von Tests der codierten UI mit Visual Studio 2010

Ff977233.collapse_all(de-de,VS.110).gifFAQ

Tests der codierten UI FAQs - 1

Tests der codierten UI FAQs -2

Ff977233.collapse_all(de-de,VS.110).gifForum

Visual Studio-Benutzeroberflächenautomatisierungs-Testen (schließt CodedUI) ein

Siehe auch

Konzepte

Überprüfen von Code mithilfe von Test der codierten Benutzeroberfläche

Supported Configurations and Platforms for Coded UI Tests and Action Recordings

Weitere Ressourcen

Erste Schritte mit dem WPF-Designer

Editing Coded UI Tests Using the Coded UI Test Editor