Partager via


Format YAML du moteur de test Power Apps (préversion)

Note

Les fonctionnalités en version préliminaire ne sont pas destinées à une utilisation en production et peuvent être restreintes. Ces fonctionnalités sont disponibles avant une publication officielle afin que les clients puissent obtenir un accès anticipé et fournir des commentaires.

Les tests sont définis dans YAML en suivant les mêmes instructions que Power Fx. En savoir plus sur la grammaire de formule YAML Power Fx.

Consultez le dossier PowerApps-TestEngine/samples pour obtenir des exemples détaillés.

Définitions de schéma YAML

Propriété Descriptif
testSuite Définit une suite de tests, les cas de test dans la suite de tests et la configuration propres à la suite de tests
testSettings Définit les paramètres de la suite de tests réutilisées dans plusieurs cas de test
environmentVariables Définit des variables susceptibles de changer à mesure que l’application est portée dans différents environnements

testSuite

Utilisé pour définir un test.

Propriété Type Descriptif
persona ficelle Obligatoire. Utilisateur connecté pour effectuer le test. Doit correspondre à une personne répertoriée dans la section Utilisateurs .
testCases TestCases Obligatoire. Définit les cas de test dans la suite de tests. Les cas de test contenus dans les suites de tests sont exécutés séquentiellement. L’état de l’application est conservé dans tous les cas de test d’une suite.
testSuiteName ficelle Obligatoire. Nom de la suite de tests.
appLogicalName ficelle Optional. Nom logique de l’application à lancer. Il peut être obtenu à partir de la solution. Pour les applications de canevas, vous devez l’ajouter à une solution pour l’obtenir. Découvrez comment identifier votre application dans le plan de test
appId GUID Optional. ID de l’application à lancer. Obligatoire et utilisé uniquement quand appLogicalName il n’est pas présent. L’ID d’application doit être utilisé uniquement pour les applications de canevas qui ne se trouve pas dans la solution. Découvrez comment identifier votre application dans le plan de test
networkRequestMocks NetworkRequestMocks Optional. Définit les simulations de requête réseau nécessaires pour le test.
onTestCaseComplete ficelle Optional. Définit les étapes qui doivent être déclenchées pour chaque cas de test dans une suite après l’exécution du cas.
onTestCaseStart ficelle Optional. Définit les étapes qui doivent être déclenchées pour chaque cas de test dans une suite avant le début de l’exécution du cas.
onTestSuiteComplete ficelle Optional. Définit les étapes qui doivent être déclenchées après l’exécution de la suite.
testSuiteDescription ficelle Optional. Des informations supplémentaires décrivent ce que fait la suite de tests.

Comment identifier votre application dans le plan de test

Vous avez besoin de définir ou appLogicalNameappId d’identifier votre application. Ce que vous utilisez dépend de la définition de votre application dans une solution.

Lorsque vous définissez vos applications au sein de solutions, vos tests restent portables dans les environnements. Définissez la appLogicalName propriété pour indiquer que l’application est basée sur la solution.

Pour localiser le nom logique de l’application :

  1. Ouvrir la solution contenant votre application dans Power Apps
  2. Utilisez le nom (et non le nom complet) dans la liste. La valeur du nom inclut le préfixe de personnalisation pour l’éditeur de solution.

Applications autonomes

Lorsque votre application n’est pas définie dans une solution, vous devez utiliser la appId propriété.

Pour localiser l’ID de l’application :

  1. Rechercher l’application dans la liste Power Apps
  2. Ouvrir les détails et noter le GUID de l’ID d’application

NetworkRequestMocks

Propriété Type Descriptif
requestURL ficelle Obligatoire. URL de requête qui obtient une réponse fictif. Les modèles Glob sont acceptés
responseDataFile ficelle Obligatoire. Fichier texte avec le contenu de réponse fictif. Tout le texte de ce fichier est lu comme réponse
headers tableau Optional. Liste des champs d’en-tête dans la requête au format [fieldName : fieldValue]
method ficelle Optional. Méthode de la requête (GET, POST, etc.)
requestBodyFile ficelle Optional. Fichier texte avec le corps de la requête. Tout le texte de ce fichier est lu en tant que corps de la requête

Pour les propriétés facultatives, si aucune valeur n’est spécifiée, le routage s’applique à tous. Par exemple, si method la valeur est Null, nous renvoyons la réponse fictive quelle que soit la méthode tant que les autres propriétés correspondent toutes.

Pour les applications Sharepoint/Dataverse/Connector, requestURL et method peut être identique pour toutes les requêtes. x-ms-request-method et x-ms-request-url dans les en-têtes peuvent avoir besoin d’être configurés dans ce cas pour identifier différentes demandes.

TestCases

Propriété Type Descriptif
testCaseName ficelle Obligatoire. Nom du cas de test utilisé pour signaler la réussite et l’échec
testSteps TestSteps Obligatoire. Ensemble de fonctions Power Fx décrivant les étapes nécessaires à l’exécution du cas de test. Voir l’exemple TestSteps
testCaseDescription Non Optional. Des informations supplémentaires décrivent ce que fait le cas de test

TestSteps

  • TestSteps peut utiliser n’importe quelle fonction Power Fx du moteur de test existant ou des fonctions de test spécifiques définies par cette infrastructure.
  • La valeur doit commencer par un symbole de canal (|) pour autoriser les expressions YAML multilignes suivies d’un signe égal (=) pour indiquer qu’il s’agit d’une expression Power Fx
  • Les fonctions doivent être séparées par un point-virgule (;).
  • Les commentaires peuvent être utilisés et doivent commencer par des barres obliques inverses doubles (//).

Exemple TestSteps

testCases:
   - testCaseName: Fill in a city name and do the search
   testSteps: |
      = Screenshot("connectorapp_loaded.png");
         SetProperty(TextInput1.Text, "Atlanta");
         Select(Button1);
         Assert(Label4.Text = "You are seeing the mock response", "Validate the output is from the mock");
         Screenshot("connectorapp_end.png");

testSettings

Permet de définir les paramètres des tests dans le plan de test.

Propriété Type Descriptif
browserConfigurations BrowserConfiguration[] Obligatoire. Liste des configurations de navigateur à tester. Au moins un navigateur doit être spécifié.
extensionModules extensionModules Optional. Contient des données sur les extensions à activer.
filePath ficelle Optional. Chemin d’accès au fichier yaml distinct avec tous les paramètres de test. S’il est fourni, il remplace tous les paramètres de test dans le plan de test.
headless boolean Optional. La valeur par défaut est true. Si la valeur est false, le navigateur s’affiche pendant l’exécution du test.
locale ficelle Optional. Syntaxe locale/culture dans laquelle les cas de test ou les étapes de test sont écrits. S’il n’est pas spécifié, CultureInfo.CurrentCulture est utilisé pour les paramètres régionaux par défaut pour analyser les étapes de test. Voir les considérations relatives à la région et à la langue
recordVideo boolean Optional. La valeur par défaut est false. Si la valeur est true, un enregistrement vidéo du test est capturé.
timeout entier Optional. Valeur de délai d’expiration en millisecondes. La valeur par défaut est de 30 000 millisecondes (30s). Si une opération prend plus de temps que la limite de délai d’attente, elle met fin au test en cas d’échec.
powerFxTestTypes name value paire Optional. Liste des définitions de type et de type Power Fx. Voir l’exemple powerFxTestTypes
testFunctions description code paire Optional. Liste des définitions de fonction Power Fx et description. Voir l’exemple testFunctions

extensionModules

Contient des données sur les extensions à activer.

Propriété Type Descriptif
enable bool Indique si les modules d’extension sont activés ou non.
allowPowerFxNamespaces list Liste des espaces de noms PowerFx à activer.
parameters paires clé-valeur Propriétés avec des valeurs pour contrôler les modules d’extension. À ce stade, seul le paramètre booléen enableDataverseFunctions est valide pour cela.

Cet exemple montre comment activer l’espace de noms PowerFx Preview :

testSettings:
  extensionModules:
    enable: true
    allowPowerFxNamespaces:
    - Preview

En savoir plus sur les fonctions en préversion

Considérations relatives à la région et à la langue

Le moteur de test prend en charge différents paramètres linguistiques et régionaux tels que les séparateurs décimaux et de liste. La testSettings.locale propriété contrôle ces comportements. Pour plus d’informations, consultez Support global dans Microsoft Power Fx.

Examinez ces exemples de configurations sur le dépôt GitHubPowerApps-TestEngine :

exemple powerFxTestTypes

powerFxTestTypes:
 - name: ControlName
   value: |
      {ControlName: Text} 
 - name: Options
   value: |
      [{Name: Text, Value: Number}]   

Cet exemple montre comment définir des types Power Fx personnalisés à utiliser dans vos cas de test. Le ControlName type est défini comme un enregistrement avec un seul Text champ, tandis que le Options type est défini comme une table d’enregistrements, chacun contenant un Name champ de type Text et un Value champ de type Number. Les types personnalisés peuvent être utilisés pour créer des scénarios de test plus complexes et spécifiques, ce qui améliore la flexibilité et la puissance de vos définitions de test.

exemple testFunctions

testFunctions:
 - description: Wait until control is visible using Document Object Model (DOM) selector
   code: |
    WaitUntilVisible(control: Text): Void = 
      Preview.PlaywrightAction(Concatenate("//div[@data-id='", control, "']"), "wait");
 - description: Get the options for a control using Power Fx control from Model Driven App (MDA)
   code: |
    GetOptions(control: ControlName): Options =
      Preview.GetOptions(control);

Ces exemples de fonction de test montrent comment définir des fonctions Power Fx personnalisées à utiliser dans vos cas de test. La WaitUntilVisible fonction utilise un sélecteur DOM pour attendre qu’un contrôle spécifié soit visible, à l’aide d’actions playwright. La fonction GetOptions récupère les options d’un contrôle spécifié à partir d’une application MDA (Model Driven App ), utilisant le contrôle Power Fx. Ces fonctions personnalisées améliorent la flexibilité et la puissance de vos définitions de test, ce qui permet de créer des scénarios de test plus complexes et spécifiques.

BrowserConfiguration

Chaque testSettings nécessite au moins un BrowserConfiguration.

Propriété Type Descriptif
browser ficelle Obligatoire. Navigateur à lancer lors du test. Doit correspondre aux navigateurs pris en charge par Playwright.
device ficelle Optional. Appareil à émuler lors du lancement du navigateur. Doit correspondre aux appareils pris en charge par Playwright
screenHeight entier Optional. Hauteur de l’écran à utiliser lors du lancement du navigateur. Si elle est spécifiée, screenWidth doit également être spécifiée.
screenWidth entier Optional. Largeur de l’écran à utiliser lors du lancement du navigateur. Si elle est spécifiée, screenHeight doit également être spécifiée.

environmentVariables

Vous pouvez stocker différents types de valeurs en tant que valeurs environnementales, mais le cas le plus courant consiste à stocker des informations d’identification avec une liste d’utilisateurs.

users

Pour garantir que les informations d’identification sont stockées de manière sécurisée, la définition de test référence les utilisateurs à l’aide d’un personaName. Le stockage des informations d’identification dans les fichiers de plan de test n’est pas pris en charge.

Exemple :

environmentVariables:
    - users:
        - personaName: "User1"
          emailKey: "user1Email"
        - personaName: "User2"
          emailKey: "user2Email"

Il personaName est utilisé dans le cadre de la définition de test pour indiquer à quel utilisateur exécuter le test.

Mécanismes de stockage des informations d’identification pris en charge

Pour stocker les informations d’identification en tant que variables d’environnement, vous pouvez les définir comme suit :

# In PowerShell - replace variableName and variableValue with the correct values
$env:variableName = "variableValue"

Dans YAML, deux propriétés doivent être définies pour indiquer que les informations d’identification de cet utilisateur sont stockées dans des variables d’environnement :

  • emailKey: variable d’environnement utilisée pour stocker l’e-mail de l’utilisateur.

Exemple YAML :

    - personaName: "User1"
      emailKey: "user1Email"

Exemple de PowerShell pour définir les informations d’identification de l’utilisateur en fonction de YAML :

$env:user1Email = "someone@example.com"

Voir aussi

Vue d’ensemble du moteur de test Power Apps (préversion)
Fonctions Power Fx du moteur de test Power Apps (préversion)