Partager via


Fonctions Power Fx pour Power Apps Test Engine (version préliminaire)

Nonte

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 version officielle afin que les clients puissent obtenir un accès anticipé et fournir des commentaires.

Test Engine utilise les fonctions PowerFx existantes suivantes :

Ces fonctions ne peuvent être utilisées que dans Test Engine :

Test Engine fournit ces fonctions en version préliminaire :

Fonctions de Test Engine

Ces fonctions ne peuvent être utilisées qu’avec Test Engine

Screenshot

Screenshot(fileNameOfScreenshot)

Cette fonction effectue une capture d’écran de l’application au moment actuel. Le fichier de la capture d’écran est enregistré dans le dossier de sortie du test et avec le nom fourni.

Nonte

Seuls les fichiers jpeg et png sont pris en charge.

Exemple de fonction screenshot

Screenshot("buttonClicked.png")

Attente

Wait(Control, Property, Value)

Cette fonction attend que la propriété du contrôle soit égale à la valeur spécifiée.

Exemple de fonction Wait

Wait(Label1, "Text", "0")

Fonctions en version préliminaire

Les fonctions suivantes peuvent éventuellement être incluses dans les tests quand l’espace de noms Aperçu de Power Fx en ajoutant Preview à la liste allowPowerFxNamespaces dans la propriété extensionModules de testSettings.

Nonte

  • Les fonctions d’aperçu sont susceptibles d’être modifiées. Au fur et à mesure que ces fonctions sont prêtes pour une utilisation plus large, elles sont prises en compte pour un déplacement dans l’espace de noms TestEngine.
  • Vous pouvez utiliser les fonctions définies par l’utilisateur pour encapsuler les fonctions Preview afin de faciliter la migration vers des versions non préliminaires de la fonction.
  • Vous pouvez demander au modèle de ne renvoyer qu’un objet JSON que vous pouvez analyser à l’aide de la fonction ParseJSON.

Preview.AIExecutePrompt

Preview.AIExecutePrompt(Name, {Property: Type})

Appelez une invite AI Builder personnalisée et obtenez les résultats texte de l’exécution.

Nonte

Consultez la section Intégration de l’IA Dataverse pour obtenir plus d’informations sur la disponibilité et la configuration de cette fonction.

Consultez Utilisation de Preview.AIExecutePrompt pour obtenir plus de détails et des descriptions sur l’utilisation de cette fonction.

Exemple de Preview.AIExecutePrompt

L’exemple suivant appelle l’invite d’IA nommée Capitale du pays avec une valeur de paramètre Pays et prévoit que l’exécution du modèle renvoie un seul mot Paris

Assert("Paris" = Preview.AIExecutePrompt("Country Capital", { Country: "France" }).Text)

Preview.ConsentDialog

Preview.ConsentDialog(Table({Text: Text}));

Attendre pour confirmer une boîte de dialogue de consentement pour une page personnalisée d’une application canevas ou d’une application pilotée par modèle

Exemple de Preview.ConsentDialog

Preview.ConsentDialog(Table({Text: "Your Dialog Title"}));

Preview.Pause

Preview.Pause()

Mettre le test en pause et afficher Playwright Inspector si un test interactif est en cours d’exécution

Nonte

Problème connu : la fonction Preview.Pause n’ouvre pas correctement l’inspecteur pour pac test run
Description : la fonction Preview.Pause ne parvient pas à ouvrir l’inspecteur pendant un pac test run.
Solution de contournement : la version open source de Test Engine peut être utilisée pour mettre la fonctionnalité en pause.

Exemple de Preview.Pause

Preview.Pause()

Preview.SelectControl

Preview.SelectControl(Control: ControlName, Index: Number)

Sélectionner un contrôle à l’aide du modèle d’objet de document

Exemple de Preview.SelectControl

Sélectionner la première correspondance Button3

Preview.SelectControl(Button3,1);

Aperçu.PlaywrightAction

Preview.PlaywrightAction(Text, Text)

Exécuter une action sur la page actuelle à l’aide d’un Localisateur CSS ou XPath Playwright

Exemples de Preview.PlaywrightAction

Preview.PlaywrightAction("//button", "click");
Preview.PlaywrightAction("//button", "exists");
Preview.PlaywrightAction("//button", "wait");

Preview.PlaywrightActionValue

Preview.PlaywrightActionValue(Text, Text, Text)

Exécuter une action sur la page actuelle à l’aide d’un Localisateur CSS ou XPath Playwright avec une valeur

Exemples de Preview.PlaywrightActionValue

Preview.PlaywrightAction("//input[@data-id='1']", "fill", "Hello");

Preview.PlaywrightScript

Preview.PlaywrightScript(Text)

Exécutez le script C# sur la page actuelle

Nonte

Cette fonction n’est implémentée que pour la build de débogage à partir de la version open source de Test Engine, pas dans pac test run.

Exemple de Preview.PlaywrightScript

Preview.PlaywrightScript("sample.csx")

Avec le contenu de sample.csx similaire à ce code :

// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.

#r "Microsoft.Playwright.dll"
#r "Microsoft.Extensions.Logging.dll"
using Microsoft.Playwright;
using Microsoft.Extensions.Logging;
using System.Linq;
using System.Threading.Tasks;

public class PlaywrightScript {
    public static void Run(IBrowserContext context, ILogger logger) {
        Execute(context, logger).Wait();
    }

    public static async Task Execute(IBrowserContext context, ILogger logger) {
        var page = context.Pages.First();

        if ( page.Url == "about:blank" ) {
            var nextPage = context.Pages.Skip(1).First();
            await page.CloseAsync();
            page = nextPage;
        }

        foreach ( var frame in page.Frames ) {
            if ( await frame.Locator("button:has-text('Button')").CountAsync() > 0 ) {
                await frame.ClickAsync("button:has-text('Button')");
            }
        }
    }
}

Preview.SimulateConnector

Preview.SimulateConnector({name: Text, then: Record})

Lorsqu’un appel est effectué depuis Power Apps vers un type de connecteur disponible dans Liste de tous les connecteurs Power Apps

Exemple de Preview.SimulateConnector

Preview.SimulateConnector({
   name: "msnweather", 
   then: {responses: { 
      daily: { 
         day: { 
            summary: "You are seeing the mock response" }
            }
         }
      }
   })

Preview.SimulateDataverse

Preview.SimulateDataverse({Action: Text, Entity: Text, Then: Table})

Exemple de Preview.SimulateDataverse

Dans cet exemple, lorsqu’un appel est effectué pour interroger l’entité Dataverse avec le nom logique sample_combotable, il renvoie les enregistrements à l’aide de la fonction Table

Preview.SimulateDataverse({
    Action: "Query",
    Entity: "sample_combotable",
    Then: Table(
    {
        'sample_name': "Item 1",
        'sample_id': 3,
        'sample_combotableid': "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
        'createdon': "2024-12-02T17:52:45Z"
    },
    {
        'sample_name': "RR2",
        'sample_id': 4,
        'sample_combotableid': "bbbbbbbb-1111-2222-3333-cccccccccccc",
        'createdon': "2024-12-02T17:54:45Z"
    },
        {
        'sample_name': "RR3",
        'sample_id': 5,
        'sample_combotableid': "cccccccc-2222-3333-4444-dddddddddddd",
        'createdon': "2024-12-02T17:54:45Z"
    }
    )
});

Simulation Dataverse et du connecteur avec Test Engine (version préliminaire)