Utilisation de Test Studio
Dans ce guide de démarrage rapide, vous créez des tests pour une application canevas nommée Kudos. Vous pouvez aussi explorer et découvrir les concepts du test, et les appliquer à l’écriture de tests pour vos propres applications canevas. L’exemple d’application Kudos fait partie d’une suite d’applications d’engagement des employés qui peuvent être téléchargées à partir du starter kit Employee Experience.
Regardez cette vidéo pour découvrir comment utiliser Studio de test :
Ouvrir Test Studio
Connectez-vous à Power Apps.
Créez une application ou modifiez une application existante.
Enregistrez votre application dans Power Apps pour ouvrir Test Studio.
Notes
Vous devez enregistrer une application avant de pouvoir écrire des tests pour l’application.
Sélectionnez Outils avancés dans le volet de navigation de gauche.
Sélectionnez Ouvrir les tests afin d’ouvrir Test Studio pour cette application. Test Studio s’ouvre dans un nouvel onglet de navigateur.
Notes
Les tests sont publiés et stockés dans le package d’application. L’exportation et l’importation d’un package d’application canevas vers un autre environnement comprendra également toutes les définitions de test telles que les suites de tests et les scénarios de test que vous avez créés.
Créer une suite de tests
Par défaut, une suite de tests et un cas de test sont automatiquement créés dans Test Studio. Les suites de tests vous permettent d’organiser vos cas de test. Une application peut contenir une ou plusieurs suites de tests. Vous pouvez commencer à écrire vos tests immédiatement en utilisant la suite de tests et le cas de test par défaut, ou créer une autre suite de tests à partir de zéro.
Sélectionnez Nouvelle suite.
Changez le nom et la description de la suite de tests en sélectionnant les champs correspondants dans la grille principale.
Créer un cas de test
Vous pouvez créer plusieurs cas de test dans une suite de tests si vous souhaitez organiser ou regrouper vos tests d’une manière spécifique. Chaque cas de test permet de tester une fonctionnalité particulière ou un sous-ensemble de fonctionnalités dans votre application.
- Sélectionnez une suite de tests.
- Sélectionnez Nouveau cas dans le menu principal pour créer un cas de test.
- Changez le nom et la description du cas de test en sélectionnant les champs correspondants dans la grille principale.
Enregistrer un cas de test
Un cas de test se compose d’étapes de test qui incluent des actions. Les actions de test sont écrites à l’aide d’expressions Power Apps qui effectuent une tâche. Vous pouvez utiliser l’enregistreur pour générer automatiquement les étapes de test au fur et à mesure que vous interagissez avec l’application. Une fois l’enregistrement terminé, vous pouvez mettre à jour le cas de test, ajouter de nouvelles étapes, supprimer des étapes et écrire des assertions de test qui vérifient le résultat du test.
Notes
Seule une application publiée est lue en mode d’enregistrement. Vous devez publier toutes les modifications récentes apportées à l’application avant de commencer l’enregistrement d’un cas de test. Si vous lancez l’enregistrement sans avoir publié au préalable les modifications récentes, la dernière version publiée de l’application est lue en mode d’enregistrement.
Sélectionnez Enregistrer dans le menu principal. L’application publiée s’ouvre en mode d’enregistrement dans un nouvel onglet de navigateur.
Important
Quand vous effectuez un enregistrement sur un cas de test existant, toutes les étapes de test existantes sont remplacées.
Interagissez avec votre application. Vos actions sont enregistrées dans le volet de gauche.
Quand vous avez fini d’interagir avec l’application, sélectionnez Terminé. Vous avez la possibilité de sélectionner Annuler pour revenir à Test Studio sans enregistrer vos interactions.
Examinez les étapes de test et les expressions qui ont été générées automatiquement dans Test Studio.
Modifiez le texte de description des étapes dans la grille principale, si nécessaire. Vous pouvez également modifier les actions des étapes de test en sélectionnant la formule dans la grille principale.
Ajouter des étapes de test et des assertions de test
Chaque cas de test doit avoir un résultat attendu. Dans l’exemple Kudos, l’un des résultats attendus de l’envoi d’un message kudo est la création d’un enregistrement dans la base de données Microsoft Dataverse (Dataverse). Vous allez maintenant modifier le script de test et ajouter des étapes de test supplémentaires pour vérifier qu’un enregistrement a bien été créé.
Effectuez les étapes suivantes pour vérifier la réussite de la création d’un enregistrement :
- Initialisez une variable pour le nombre d’enregistrements kudo dans la base de données au début du cas de test.
- Initialisez une variable pour le nombre d’enregistrements kudo dans la base de données à la fin du cas de test.
- Écrivez une expression d’assertion de test pour vérifier que le nombre a été incrémenté d’une unité. S’il n’y a pas eu d’incrémentation, l’assertion de test échoue, entraînant l’échec de votre script de test.
Pour ajouter des étapes de test et des assertions de test dans l’application Kudos :
Sélectionnez l’étape 1 ou l’étape au-dessus de laquelle vous souhaitez insérer une nouvelle étape.
Sélectionnez Insérer une étape ci-dessus dans le menu principal ou sélectionnez cette option à partir de la ligne active. Une étape vide est créée.
Notes
Quand vous sélectionnez Insérer une étape ci-dessus, une nouvelle étape vide est ajoutée au-dessus de l’étape actuelle. Vous pouvez également utiliser l’action Assert, SetProperty, Select ou Trace à la place. Cela ajoute une étape avec la formule d’action correspondante que vous pouvez modifier.
Modifiez la description de l’étape. Par exemple, entrez « Compter les enregistrements Kudo dans la base de données ».
Entrez une expression ou une formule dans l’entrée d’action pour compter les enregistrements dans la base de données avant d’exécuter le test.
Vous pouvez choisir n’importe quelle expression prise en charge. Vous pouvez également interroger les sources de données, collections, variables ou flux d’exécution qui sont contenus dans votre application, ainsi que créer des variables globales ou des collections à utiliser dans vos tests.
Set(kudosBeforeTest, CountRows(Filter(Kudos, Receiver.Email = "someone@example.com")))```
Select Step 2 or the step above which you want to insert a new step.
Select Insert a step above from the top menu or by selecting the option from the active row. This action creates an empty step.
Enter an expression or formula in the action input to Trace and write the kudosBeforeTest value to test the results record.
Trace("kudosBeforeTest : " & kudosBeforeTest);
En bas du cas de test, insérez une nouvelle étape pour compter les enregistrements dans la base de données à la fin du test.
Set(kudosAfterTest, CountRows(Filter(Kudos, Receiver.Email = "someone@example.com")))```
Add a final step to validate that the record count in the database has increased by a count of 1, and enter the following assertion action to verify:
Assert(kudosAfterTest = kudosBeforeTest + 1, "Kudos count incorrect. Expected : " & kudosBeforeTest + 1 & " Actual :" & kudosAfterTest)
Enregistrez le cas de test à l’aide du menu en haut à droite dans Test Studio.
Lire votre test
Vous pouvez lire le test que vous avez enregistré afin de vérifier le bon fonctionnement de l’application. Vous avez la possibilité de lire tous les tests d’une même suite de tests ou lire un seul cas de test.
Avant de lire l’enregistrement avec les modifications récentes, vous devez publier l’application :
Important
Si vous ignorez l’étape de publication, la lecture de l’enregistrement ne prendra pas en compte vos modifications de test récentes. La suite ou le cas de test ayant été publié en dernier sera lu pour l’application.
Sélectionnez Publier pour enregistrer et publier automatiquement votre test.
Sélectionnez une suite de tests ou un cas de test spécifique.
Sélectionnez Lire. L’application publiée s’ouvre en mode de lecture. Vous voyez les étapes de test lues automatiquement. Une coche verte affichée indique que l’étape de test s’est exécutée avec succès. Si une étape échoue, un indicateur d’échec rouge et un message d’erreur s’affichent.
Cliquez sur Terminé pour revenir dans Test Studio.
Échec d’assertion
Dans cette section, vous allez modifier l’assertion de test pour provoquer l’échec du test :
Modifiez l’étape d’assertion en sélectionnant la zone d’expression.
Changez
+ 1
en+ 2
dans l’action de test. Ainsi, le test attend la création de deux enregistrements, ce qui n’est pas correct. Si le test réussit, un seul enregistrement doit être créé dans la base de données.Assert(kudosAfterTest = kudosBeforeTest + 2, "Kudos count incorrect. Expected : " & kudosBeforeTest + 2 & " Actual :" & kudosAfterTest)
Cliquez sur Publier.
Sélectionnez Lire.
Regardez le test en cours de lecture. La dernière étape échoue à présent ; elle affiche une erreur et le message que vous avez fourni dans l’étape d’assertion.
Lecture de tests dans un navigateur
Vous pouvez copier un lien pour lire un test dans un navigateur séparé en dehors de Test Studio. Cela facilite l’intégration de vos tests dans un pipeline de build et de mise en production en continu, par exemple Azure DevOps.
Le lien de lecture du test sélectionné est persistant. Il ne change pas pour la suite de tests ou le cas de test. Vous pouvez mettre à jour vos tests sans avoir à modifier les processus de build et de mise en production existants.
Pour lire des tests dans votre navigateur :
Sélectionnez une suite de tests ou un cas de test dans le volet de droite.
Cliquez sur Copier le lien de lecture.
Vous êtes invité à publier les tests s’ils comportent des modifications non publiées.
Vous pouvez choisir d’ignorer l’invite de publication et de copier le lien de lecture. Les nouvelles modifications de test ne seront alors pas lues.
Ouvrez un navigateur et collez l’URL dans la barre d’adresse pour lire le test.
Regardez le test en cours de lecture.
Configurer vos tests
Lapropriété OnTestCaseStart d’une suite de tests peut être utilisée pour configurer votre test. L’expression entrée pour cette propriété se déclenche pour chaque script de test dans une suite avant que le scénario ne commence à s’exécuter. OnTestCaseStart vous aide à éviter d’écrire les mêmes étapes de test au début de chaque cas. Vous pouvez personnaliser cette propriété pour exécuter des tâches de configuration communes à tous les cas de la suite, telles que :
- Toujours lancer l’exécution du test à partir du premier écran.
- Initialisation de collections ou de variables communes.
- Récupération des données de test à partir d’un source de données pour le test en cours d’exécution
L’enregistrement TestCaseInfo contient des détails sur le test en cours d’exécution. Il contient les propriétés suivantes :
- TestCaseName : nom du cas de test.
- TestCaseDescription – la description du script de test.
- TestCaseId : ID du cas de test.
- TestSuiteName : nom de la suite de tests qui contient le cas de test.
- TestCaseDescription – la description du script de test.
- TestSuiteId : ID de la suite de tests qui contient le cas de test.
Dans l’exemple ci-dessous, vous allez personnaliser la propriété OnTestCaseStart afin que chaque script de test commence à partir du premier écran de votre application. Vous récupérerez également les données de test à partir d’un source de données qui peut être référencé dans les étapes du script de test.
Cliquez sur Tester dans le volet de gauche ou sur Afficher sur l’en-tête de la suite.
Sélectionnez l’action OnTestCaseStart.
Saisissez une expression pour naviguer vers le premier écran et récupérer les données de test pour votre test.
//Start every cases on the first screen in the Kudos app Navigate('Dashboard Screen'); //Initialize my test data for the current case. Set(currentTestData, LookUp(KudosTestData, TestCase = TestCaseInfo.TestCaseName)); //Set kudosBeforeTest to 0 Set(kudosBeforeTest, 0)
Traitement des résultats de test
Le panneau de test visible quand vous lisez des tests dans Test Studio ne s’affiche pas dans le navigateur. En raison de ce comportement, vous ne pouvez donc pas savoir quelle étape de test spécifique s’exécute et si le test réussit ou échoue.
Pour vérifier et traiter les résultats de test en dehors de Test Studio, vous pouvez utiliser deux propriétés appelées OnTestCaseComplete et OnTestSuiteComplete (elles sont disponibles dans l’objet de test). Si vous intégrez des tests dans un pipeline de build et de mise en production en continu comme Azure DevOps, ces propriétés vous aident à savoir si le déploiement de l’application est prêt à être lancé.
L’expression entrée pour ces propriétés est déclenchée à la fin de chaque cas de test ou suite de tests. Vous pouvez personnaliser ces propriétés pour traiter et envoyer les résultats de vos tests à divers services ou sources de données comme :
- SQL Server.
- Dataverse.
- Power Automate.
- E-mail utilisant Office 365.
Ces paramètres s’appliquent à chaque suite de tests ou cas de test dans votre application. À la fin de chaque suite de tests ou cas de test, les résultats de test et les messages de trace contenus dans les tests sont stockés dans les enregistrements TestCaseResult et TestSuiteResult.
L’enregistrement TestCaseResult contient les propriétés suivantes :
- TestCaseName : nom du cas de test.
- TestCaseDescription – la description du script de test.
- TestCaseId : ID du cas de test.
- TestSuiteName : nom de la suite de tests qui contient le cas de test.
- TestCaseDescription – la description du script de test.
- TestSuiteId : ID de la suite de tests qui contient le cas de test.
- StartTime : heure de début de l’exécution du test.
- EndTime : heure de fin de l’exécution du test.
- Traces : résultat des assertions de test et des messages de la fonction Trace.
- Success : indique si le cas de test s’est exécuté correctement.
- TestFailureMessage : message d’erreur généré en cas d’échec du cas de test.
L’enregistrement TestSuiteResult contient les propriétés suivantes :
- TestSuiteName : nom de la suite de tests.
- TestCaseDescription – la description du script de test.
- TestSuiteId : ID de la suite de tests.
- StartTime : heure de début de l’exécution de la suite de tests.
- EndTime : heure de fin de l’exécution de la suite de tests.
- TestsPassed : nombre de cas de test qui se sont exécutés correctement dans la suite de tests.
- TestsFailed : nombre de cas de test dont l’exécution a échoué dans la suite de tests.
Dans ce guide de démarrage rapide, vous créez deux tables personnalisées dans la base de données Dataverse afin de stocker les résultats de test, en personnalisant les propriétés OnTestCaseComplete et OnTestSuiteComplete :
Cliquez sur Tester dans le volet de gauche ou sur Afficher sur l’en-tête de la suite.
Sélectionnez l’action OnTestCaseComplete.
Entrez une expression pour traiter les résultats de votre test. L’exemple suivant enregistre chaque résultat de cas de test dans la table AppTestResults personnalisée dans Dataverse. Les résultats de test peuvent éventuellement être stockés dans SQL, SharePoint ou toute autre source de données. Vous aurez peut-être besoin de définir ou d’augmenter la valeur du champ Trace dans votre source de données.
Notes
Les exemples suivants se connectent à Microsoft Dataverse. Vous pouvez créer une application simple ou créer une application à partir de zéro à l’aide de Dataverse. Consultez les informations de référence sur la fonction Patch pour en savoir plus sur la modification des enregistrements d’une source de données utilisés dans les exemples suivants.
//Save to Dataverse Patch(AppTestResults , Defaults(AppTestResults) , { TestPass: TestCaseResult.TestCaseName & ":" & Text(Now()) ,TestSuiteId: TestCaseResult.TestSuiteId ,TestSuiteName: TestCaseResult.TestSuiteName ,TestCaseId: TestCaseResult.TestCaseId ,TestCaseName: TestCaseResult.TestCaseName ,StartTime: TestCaseResult.StartTime ,EndTime: TestCaseResult.EndTime ,TestSuccess: TestCaseResult.Success ,TestTraces: JSON(TestCaseResult.Traces) ,TestFailureMessage: TestCaseResult.TestFailureMessage } );
Sélectionnez l’action OnTestSuiteComplete.
Entrez une expression pour traiter les résultats de votre test. Dans l’exemple suivant, vous allez enregistrer chaque résultat de la suite de test dans la table AppTestSuiteResults personnalisée dans Dataverse.
//Save to Dataverse Patch(AppTestSuiteResults , Defaults(AppTestSuiteResults) , { TestSuiteId: TestSuiteResult.TestSuiteId ,TestSuiteName: TestSuiteResult.TestSuiteName ,StartTime: TestSuiteResult.StartTime ,EndTime: TestSuiteResult.EndTime ,TestPassCount: TestSuiteResult.TestsPassed ,TestFailCount: TestSuiteResult.TestsFailed } );
Voici d’autres exemples d’expressions utilisables dans ces propriétés :
Envoyer les résultats à un flux dans Power Automate.
MyTestResultsFlow.Run(JSON(TestCaseResult))
Envoyer les résultats par e-mail.
Office365.SendMailV2("someone@example.com", "Test case results", JSON(TestCaseResult, JSONFormat.IndentFour))
Recevoir de l’application une notification du résultat de test.
Par exemple, vous recevez une notification à la fin de la lecture du test dans un navigateur en dehors de Test Studio.
Notify(TestCaseResult.TestCaseName & " : " & If( TestCaseResult.Success , " Passed" , TestCaseResult.TestFailureMessage) ,If( TestCaseResult.Success , NotificationType.Success , NotificationType.Error) )
Fonctions de test
En plus des fonctions disponibles dans Power Apps, les fonctions suivantes sont couramment utilisées pour la création de tests.
Étapes suivantes
Notes
Pouvez-vous nous indiquer vos préférences de langue pour la documentation ? Répondez à un court questionnaire. (veuillez noter que ce questionnaire est en anglais)
Le questionnaire vous prendra environ sept minutes. Aucune donnée personnelle n’est collectée (déclaration de confidentialité).