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
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.
Applications basées sur des solutions (recommandées)
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 :
- Ouvrir la solution contenant votre application dans Power Apps
- 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 :
- Rechercher l’application dans la liste Power Apps
- 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
-
TestStepspeut 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 :
- Pour les régions utilisant des points-virgules comme séparateurs de liste
- Pour les régions utilisant des virgules comme séparateurs décimaux
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)