Test des applications du Windows Store avec des tests codés de l'interface utilisateur
Utilisez des tests codés de l'interface utilisateur pour vérifier vos applications du Windows Store.
Créer une application du Windows Store simple
Si vous souhaitez exécuter des tests codés de l'interface utilisateur pour vos applications du Windows Store en XAML, vous devez définir une propriété d'automation unique qui identifie chaque contrôle.
Dans le menu Outils, pointez sur Options, choisissez Éditeur de texte, XAML, puis Divers.
Cochez la case pour nommer automatiquement les éléments interactifs lors de leur création.
Créez un projet pour une application du Windows Store vide en XAML à l'aide d'un modèle Visual C# ou Visual Basic.
Dans l'Explorateur de solutions, ouvrez MainPage.xaml.Dans la barre d'outils, faites glisser un contrôle bouton et un contrôle textbox sur l'aire de conception.
Double-cliquez sur le contrôle bouton et ajoutez le code suivant :
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
Appuyez sur F5 pour exécuter votre application du Windows Store.
Créer et exécuter un test codé de l'interface utilisateur pour l'application du Windows Store
Créez un projet de test codé de l'interface utilisateur pour l'application du Windows Store.
Choisissez de modifier le mappage d'IU à l'aide de la croix.
Utilisez la croix dans le Générateur de test codé de l'interface utilisateur pour sélectionner la vignette de l'application, cliquez avec le bouton droit sur AutomationId et choisissez Copier la valeur dans le Presse-papiers.La valeur dans le Presse-papiers sera utilisée ultérieurement pour l'écriture de l'action de lancement de l'application pour le test.
Dans l'application du Windows Store en cours d'exécution, utilisez la croix pour sélectionner le contrôle bouton et le contrôle textbox.Après avoir ajouté chaque contrôle, choisissez le bouton Ajouter le contrôle au mappage de contrôle d'interface utilisateur dans la barre d'outils du Générateur de test codé de l'interface utilisateur.
Choisissez le bouton Générer le code dans la barre d'outils du Générateur de test codé de l'interface utilisateur, puis choisissez Générer pour créer le code pour les modifications du mappage de contrôle d'interface utilisateur.
Choisissez le bouton pour définir une valeur dans le contrôle textbox.
Utilisez la croix pour sélectionner le contrôle textbox, puis sélectionnez la propriété Texte.
Ajoutez une assertion.Elle sera utilisée lors du test pour vérifier que la valeur est correcte.
Ajoutez et générez le code pour l'assertion.
Visual C#
Dans l'Explorateur de solutions, ouvrez le fichier UIMap.Designer.cs pour afficher le code ajouté pour la méthode assert et les contrôles.
Visual Basic
Dans l'Explorateur de solutions, ouvrez le fichier le code CodedUITest1.vb puis, dans le code de la méthode de test CodedUITestMethod1(), cliquez avec le bouton droit sur l'appel à la méthode d'assertion qui a été ajouté automatiquement Me.UIMap.AssertMethod1() et choisissez Atteindre la définition.Le fichier UIMap.Designer.vb s'ouvre dans l'éditeur de code, ce qui vous permet de voir le code ajouté pour la méthode assert et les contrôles.
Attention Ne modifiez pas le fichier UIMap.Designer.cs ou UIMap.Designer.vb directement.Si vous le faites, les modifications apportées au fichier seront remplacées à chaque génération du test.
Méthode Assert
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
Contrôles
#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
Dans l'Explorateur de solutions, ouvrez le fichier CodedUITest1.cs ou CodedUITest1.vb.Vous pouvez maintenant ajouter du code à la méthode CodedUTTestMethod1 pour les actions nécessaires à l'exécution du test à l'aide des contrôles ajoutés à l'UIMap :
Lancez l'application du Windows Store à l'aide de la propriété d'ID d'automation que vous avez copiée précédemment dans le Presse-papiers :
XamlWindow.Launch("8ebca7c4-effe-4c86-9998-068daccee452_cyrqexqw8cc7c!App")
XamlWindow myAppWindow = XamlWindow.Launch("7254db3e-20a7-424e-8e05-7c4dabf4f28d_cyrqexqw8cc7c!App");
Ajoutez un mouvement pour appuyer sur le contrôle bouton :
Gesture.Tap(this.UIMap.UIApp1Window. UIButtonButton);
Gesture.Tap(Me.UIMap.UIApp2Window. UIButtonButton)
Vérifiez que l'appel à la méthode assert généré automatiquement se produit après le lancement de l'application et le mouvement d'appui sur le bouton :
this.UIMap.AssertMethod1();
Me.UIMap.AssertMethod1()
Une fois le code ajouté, la méthode de test CodedUITestMethod1 doit ressembler à ce qui suit :
[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
Générez votre test et exécutez-le à l'aide de l'Explorateur de tests.
L'application du Windows Store démarre, l'action d'appui sur le bouton est exécutée et la propriété Texte du contrôle textbox est remplie et validée à l'aide de la méthode assert.
Une fois le test terminé, l'Explorateur de tests confirme que le test a réussi.
Q et R
Q : Pourquoi l'option d'enregistrement de mon test codé de l'interface utilisateur ne figure-t-elle pas dans la boîte de dialogue Générer le code pour le test codé de l'interface utilisateur ?
R : l'option d'enregistrement n'est pas prise en charge pour les applications du Windows Store.
Q : Puis-je créer un test codé de l'interface utilisateur pour mes applications du Windows Store basées sur WinJS ?
R : Non, seules les applications XAML sont prises en charge.
Q : Puis-je créer des tests codés de l'interface utilisateur pour mes applications du Windows Store sur un système qui n'exécute pas Windows 8 ?
R : Non, le modèle Projet de test codé de l'interface utilisateur (applications du Windows Store) est disponible uniquement sur Windows 8.
Q : Pourquoi ne puis-je pas modifier le code du fichier UIMap.Designer ?
R : Toutes les modifications de code que vous effectuez dans le fichier UIMapDesigner.cs sont remplacées chaque fois que vous générez du code dans UIMap - Générateur de test codé de l'interface utilisateur.Si vous devez modifier une méthode enregistrée, vous devez la copier dans le fichier UIMap.cs et la renommer.Le fichier UIMap.cs peut être utilisé pour remplacer les méthodes et les propriétés dans le fichier UIMapDesigner.cs.Vous devez supprimer la référence à la méthode d'origine dans le fichier Coded UITest.cs et la remplacer par le nom de la méthode renommée.
Voir aussi
Concepts
Test de l'interface utilisateur avec des tests codés de l'interface utilisateur automatisés
Définir une propriété Automation unique pour les contrôles Windows Store à des fins de test