Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Note
Le moteur de test est déconseillé et sera supprimé dans une prochaine version. Utilisez des exemples Power Platform Playwright pour tester les fonctionnalités d’automatisation dans les services Power Platform et Dynamics 365.
La création de plans de test complets pour les applications Power Platform peut prendre beaucoup de temps, en particulier pour les scénarios complexes. Les outils de création assistés par l’IA comme GitHub Copilot peuvent accélérer considérablement ce processus en générant des modèles de test, en suggérant des cas de test et en automatisant la création de code réutilisable.
Ce guide explique comment utiliser GitHub Copilot avec des solutions de contrôle de code source Power Platform pour créer efficacement des plans de test du moteur de test.
Prérequis
Avant de commencer, assurez-vous d’avoir :
- Visual Studio Code installé
- abonnement GitHub Copilot
- extension GitHub Copilot Chat pour VS Code
- Power Platform CLI installé
- Une solution Power Platform contrôlée par la source
Configuration de votre environnement de création de tests
Pour maximiser l’efficacité de la création de tests assistée par l’IA, combinez ces outils dans un flux de travail structuré :
- Récupérez vos fichiers sources
- Clonez votre environnement ou votre solution Power Platform à partir du contrôle de code source
- Exportez votre solution et décompressez-la de Power Platform avec les fichiers à l’aide de pac solution export et pac solution unpack
- Initialiser un référentiel git pour le contrôle de version (si ce n’est pas déjà fait)
- Créez un dossier de test dédié dans votre référentiel de solutions
- Ouvrez le dossier de solution dans Visual Studio Code
Utilisation de GitHub Copilot pour la création de tests
GitHub Copilot pouvez vous aider à générer différents composants de test en fonction de votre solution contrôlée par la source. Voici comment utiliser efficacement ses fonctionnalités :
Utilisation d’un exemple de documentation comme contexte
Le catalogue d’exemples Test Engine fournit une source riche de documents de référence pour GitHub Copilot. Vous pouvez aider Copilot générer des tests de qualité supérieure en :
- Inclure le fichier samples.md dans votre espace de travail
- Référencer des exemples spécifiques dans vos invites
- Fourniture de liens vers des exemples de référentiels de GitHub
Par exemple, vous pourriez :
- Ouvrez à la fois votre code d’application et le fichier samples.md dans VS Code
- Demander à Copilot pour créer des tests « similaires à l’exemple ButtonClicker » ou « utilisation de modèles à partir de l’exemple Dataverse »
- Référencez des fonctionnalités spécifiques à partir d’exemples qui correspondent à vos besoins de test
Cette approche permet de Copilot comprendre les modèles de moteur de test Power Platform et de générer des tests plus précis.
Utilisation de GitHub Copilot en mode Agent
Le GitHub Copilot Chat de Visual Studio Code offre un mode Agent qui peut vous aider à générer des tests en fonction de vos fichiers de solution. Ce mode permet Copilot d’accéder et de comprendre plus en détail le contexte de votre projet.
Pour utiliser le mode Agent pour la génération de tests :
- Dans VS Code, ouvrez GitHub Copilot Chat (Ctrl+Maj+I)
- Sélectionnez Agent dans le sélecteur mode Copilot
- Créez une invite détaillée sur le test que vous souhaitez créer
Exemples d’invites pour la génération de tests
Essayez d’utiliser des requêtes comme celles-ci pour la génération de tests :
Objectif :
Générez une suite de tests complète pour une application canevas à l’aide du moteur de test Power Apps, modélisée après l’exemple ButtonClicker.
Invite :
Générez un test pour ./SolutionPackage/src/CanvasApps/src/MyApp/Src/App.fx.yaml en utilisant l’exemple sur https://github.com/microsoft/PowerApps-TestEngine/tree/main/samples/buttonclicker comme référence. Créez des cas attendus, des cas limites et des cas d’exception. Le test doit créer un fichier YAML de test et des étapes de test Power Fx, config.json et RunTest.ps1 en fonction de l’exemple pour me permettre d’exécuter le test.
Objectif :
Élaborez un plan de test détaillé pour une application pilotée par modèle afin de vous assurer que les fonctionnalités de base et la logique métier fonctionnent comme prévu.
Invite :
Créer un plan de test complet pour mon application pilotée par modèle située à ./SolutionPackage/src/Other/Solution.xml. Le test doit valider le chargement du formulaire, la création d’enregistrements et l’exécution des règles métier. Génère le YAML de test, les étapes Power Fx et un script PowerShell pour exécuter le test.
Objectif :
Élaborez un plan de test pour les entités Dataverse afin de vérifier les opérations CRUD via des actions Power Fx.
Invite :
Crée un plan de test complet pour mes entités Dataverse. Le test doit effectuer des actions Power Fx de création, de mise à jour et de suppression. Génère le YAML de test, les étapes Power Fx et un script PowerShell pour exécuter le test.
Comprendre les composants de test générés
Quand GitHub Copilot génère un test, il crée généralement les composants suivants :
- Plan de test YAML : définit la structure de test, l’URL de l’application et les étapes de test
- Étapes de test Power Fx : contient la logique de test à l’aide d’expressions Power Fx
- config.json : Configuration des paramètres d’exécution des tests
- RunTest.ps1 : script PowerShell pour exécuter le test
Exemple : Structure de test générée
MyAppTests/
├── MyAppTest.fx.yaml # Power Fx test steps
├── MyAppTest.yml # Test plan definition
├── config.json # Test configuration
└── RunTest.ps1 # Test execution script
Meilleures pratiques pour la création de tests assistée par l’IA
Tenez compte des sections suivantes pour tirer le meilleur parti de GitHub Copilot lors de la création de tests avec le moteur de test.
Fournissez un contexte clair dans vos invites
Soyez précis sur ce que vous souhaitez tester et incluez des références à :
- Les fichiers exacts à tester
- Exemples de tests à utiliser comme modèles
- Scénarios de test spécifiques que vous souhaitez couvrir
- Toutes les exigences en matière d’authentification ou d’environnement
Utilisation d’exemples de Test Engine dans le contexte
Le catalogue de documentation samples.md répertorie tous les exemples disponibles à partir du référentiel du moteur de test, ce qui peut être une excellente référence lors de la création d’invites pour GitHub Copilot. Par exemple, lorsque vous testez une application canevas avec des boutons, vous pouvez vous référer à l’exemple Button Clicker :
Invite :
Générez un test pour mon application Canvas à ./SolutionPackage/src/CanvasApps/src/MyApp/Src/App.fx.yaml en utilisant l'exemple ButtonClicker de https://github.com/microsoft/PowerApps-TestEngine/tree/main/samples/buttonclicker. Le test doit :
1. Vérifier que le bouton de mon compteur incrémente une valeur à l’écran
2. Conditions de délimitation du test (par exemple, valeur maximale)
3. Inclure les hooks de cycle de vie OnTestCaseStart et OnTestCaseComplete
4. Générer le config.json avec les variables d’environnement appropriées
Cette approche aide Copilot comprendre la structure de test et génère des tests plus précis et contextuels basés sur des exemples prouvés.
Utiliser des solutions contrôlées par la source comme contexte
Copilot fonctionne le mieux quand il peut analyser votre structure de solution. Utilisez le contrôle de code source pour les solutions Power Platform afin de fournir ce contexte. Ce contexte permet Copilot :
- Comprendre la structure de votre application
- Identifier les noms et les propriétés des contrôles
- Générez des étapes de test plus précises
- Référencer les chemins d’accès de fichier corrects
Examiner et affiner les tests générés
Bien que les tests générés par l’IA constituent un excellent point de départ, toujours :
- Vérifiez que les références de contrôle correspondent à votre application
- Ajouter des assertions pour les fonctionnalités critiques pour l’entreprise
- S’assurer que les cas limites sont correctement traités
- Valider la configuration d’authentification
Combiner avec l’expertise manuelle
Pour les scénarios de test complexes, utilisez GitHub Copilot pour :
- Générer le cadre et la structure de test
- Créer des modèles de validation standard
- Suggérer des cas limites à prendre en compte
Ensuite, complétez avec votre expertise du domaine pour :
- Règles de validation spécifiques à l’entreprise
- Considérations environnementales
- Données de test spécialisées
Modèles courants de génération de tests
Cette section contient quelques modèles de génération de tests courants :
Test des Applications Canvas
Pour les applications canevas, utilisez des requêtes qui référencent le fichier App.fx.yaml dans votre solution contrôlée par la source :
Invite :
Générez un test pour mon application Canvas à l’adresse ./SolutionPackage/src/CanvasApps/src/MyExpenseApp/Src/App.fx.yaml qui valide le processus de soumission des dépenses. Le test doit renseigner les champs de dépenses, envoyer le formulaire et vérifier que le message de confirmation s’affiche.
Tester des applications pilotées par modèle
Pour les applications pilotées par modèle, concentrez-vous sur la navigation dans les entités, les interactions de formulaire et les règles métier :
Invite :
Créer un test pour mon application pilotée par modèle qui teste le formulaire de l’entité Compte. Le test doit créer un enregistrement de compte, valider les champs obligatoires et vérifier que les règles métier pour le calcul de la limite de crédit fonctionnent correctement.
Tester des extensions Dataverse
Pour les tests Dataverse, mettez l’accent sur la validation des opérations de données et de la logique métier :
Invite :
Génère un test Dataverse qui valide les plug-ins personnalisés de ma solution. Le test doit créer des enregistrements de test, déclencher l’exécution du plug-in et vérifier que les transformations de données attendues se sont produites.
Incitations de test spécifiques à l'échantillon
Pour obtenir la génération de tests la plus précise, référencez des exemples spécifiques du catalogue d’exemples Test Engine qui correspondent à vos besoins de test. Voici des invites personnalisées pour les scénarios de test courants :
Exemples de requêtes ButtonClicker
L’exemple ButtonClicker illustre les tests de base de la fonctionnalité du compteur. Utilisez ces invites :
Invite :
Générer un test pour mon application de compteur avec une structure similaire à l’exemple ButtonClicker. Mon application a des boutons nommés « IncrementBtn » et « ResetBtn » avec un « CounterLabel » qui affiche le nombre actuel. Créez un test qui vérifie que les deux boutons fonctionnent correctement et que le nombre maximal est de 10.
Invite :
Créer un test pour mon application d’interaction de bouton en utilisant l’exemple ButtonClicker comme référence. Mon application dispose d’un « SubmitButton » qui ne doit être activé que lorsque les champs « NameInput » et « EmailInput » sont renseignés. Générer un plan de test avec des étapes Power Fx pour valider ce comportement.
Requêtes de test de galerie
Les exemples BasicGallery et NestedGallery montrent comment tester les interactions de la galerie :
Invite :
Générer un test pour mon application de galerie où j’ai une galerie « Produits » avec des éléments de produit contenant les contrôles « TitleLabel », « PriceLabel » et « SelectButton ». Utilisez l’exemple de structure BasicGallery pour vérifier que je peux sélectionner des éléments et que les détails corrects apparaissent dans un « DetailPanel ».
Requêtes d’opérations de données
L’exemple Dataverse illustre les tests des opérations sur les données :
Invite :
Créer un test pour mon application CRM à l’aide de l’exemple de modèle Dataverse. Tester que je peux créer un enregistrement Contact, le mettre à jour, puis vérifier que les modifications persistent. Inclure à la fois les tests de l’interface utilisateur et les opérations directes du Dataverse.
Requêtes de test d’IA
Pour tester les fonctionnalités basées sur l’IA, reportez-vous à l’exemple de commande IA :
Invite :
Générez un test pour mon application d’analyse de sentiment en utilisant l’exemple de requête IA. Mon application a une zone de texte « FeedbackInput » et utilise AI Builder pour la classer comme positive, négative ou neutre. Créer un test qui valide que différentes entrées produisent les sorties attendues dans des seuils acceptables.
Techniques avancées
Cette section fournit des exemples de fonctionnalités d’invite avancées.
Création de suites de tests multi-environnements
Vous pouvez inviter Copilot à générer des tests qui fonctionnent dans plusieurs environnements :
Invite :
Générer une suite de tests pour mon application pouvant s’exécuter dans les environnements DEV, TEST et PROD avec les variables de configuration appropriées pour chaque environnement.
Génération de scénarios de moquerie de données
Pour les tests isolés avec le moquage de connecteur :
Invite :
Créez un test avec des réponses de connecteur fictifs pour mon application qui utilise le connecteur Office 365 Outlook. Le test doit simuler la réception d’e-mails et valider la logique de traitement de l’application.
Tester les capacités de l’IA et traiter les résultats non déterministes
Lorsque vous travaillez avec des applications alimentées par l’IA, les tests présentent des défis uniques, car les sorties de l’IA peuvent varier légèrement d’une exécution à l’autre, même avec des entrées identiques. Ce comportement non déterministe nécessite des approches de test spéciales.
Comprendre les tests non déterministes
Les tests non déterministes consistent à valider des résultats qui peuvent légitimement varier d’une exécution de test à l’autre :
- AI Model Outputs : Réponses à partir de modèles IA tels que GPT ou composants de AI Builder personnalisés
- Scores de confiance : évaluations numériques qui peuvent fluctuer à l’intérieur de plages acceptables
- Contenu généré : texte ou recommandations produits par les systèmes d’IA
Utilisation de Preview.AIExecutePrompt pour tester de manière déterministe les capacités de l’IA
Le Test Engine fournit Preview.AIExecutePrompt qui permet la validation déterministe des réponses de l’IA. Cette approche vous permet d’effectuer ce qui suit :
- Exécuter des invites d’IA dans des scénarios de test
- Analyser et valider les réponses structurées
- Vérifier que les résultats critiques répondent aux attentes malgré les variations potentielles
Exemple : Évaluation des notes avec AI Builder
L’exemple suivant illustre l’utilisation de la fonction Preview.AIExecutePrompt pour tester un système d’évaluation alimenté par l’IA :
EvaluateTestQuestionPrompt(Prompt: TestQuestion): TestResult =
With({
Response: ParseJSON(
Preview.AIExecutePrompt("PromptEvaluator",
{
Context: "You are a helpful agent asking about external customer service questions.",
Question: Prompt.Question
}).Text)
},If(
IsError(AssertNotError(Prompt.ExpectedRating=Response.Rating, Prompt.Question & ", Expected " & Prompt.ExpectedRating & ", Actual " & Response.Rating)),
{PassFail: 1, Summary: Prompt.Question & ", Expected " & Prompt.ExpectedRating & ", Actual " & Response.Rating}, {PassFail: 0, Summary: "Pass " & Prompt.Question}
))
Dans cet exemple :
- Le test exécute une requête IA par rapport au modèle « PromptEvaluator »
- Il transmet un contexte et une question pour l'évaluation
- Il valide que la note renvoyée correspond à la valeur attendue
- Il fournit un retour d’information clair sur la réussite ou l’échec du test
Vous pouvez explorer l’implémentation complète dans l’exemple d’invite d’IA dans le référentiel PowerApps-TestEngine.
Intégration de tests prenant en charge l’IA
Lors de l’utilisation de GitHub Copilot pour générer des tests pour les applications basées sur l’IA :
Invite :
Générez un test pour mon application basée sur l’IA qui utilise AI Builder traitement de formulaire. Incluez des étapes de test qui valident les résultats de l’IA avec une tolérance appropriée pour les sorties non déterministes.
Dépannage et perfectionnement
Si GitHub Copilot génère des tests qui ne répondent pas à vos besoins :
- Affinez votre invite : soyez plus précis sur ce que vous souhaitez tester
- Fournissez des exemples : créez un lien vers des échantillons de test spécifiques qui correspondent au style souhaité
- Décomposez les tests complexes : demandez la génération de composants de test plus petits et ciblés
- Iterate : utilisez les réponses de Copilot pour affiner votre invite suivante
Articles associés
Explorer les fonctionnalités de Test Engine
Parcourir le catalogue d’exemples Test Engine
En savoir plus sur les fonctions de test Power Fx
Comprendre le format de test YAML
Explorer les options d’authentification
Training : Création d’applications en mode assistant Copilot GitHub