Delen via


Power Apps Test Engine Power Fx Functies (preview)

Notitie

Preview-functies zijn niet bedoeld voor productiegebruik en bieden mogelijk beperkte functionaliteit. Deze functies zijn beschikbaar voorafgaand aan een officiële release, zodat klanten vroeg toegang kunnen krijgen en feedback kunnen geven.

Testengine maakt gebruik van de volgende bestaande PowerFx-functies:

Deze functies zijn alleen beschikbaar voor gebruik in de testengine:

De testengine biedt de volgende voorbeeldfuncties: ...

Test motorfuncties

Deze functies zijn alleen beschikbaar voor gebruik met Test Engine

Schermafbeelding

Screenshot(fileNameOfScreenshot)

Met deze functie wordt een screenshot van de app gemaakt op het huidige tijdstip. Het screenshotbestand wordt opgeslagen in de testuitvoermap en krijgt de opgegeven naam.

Notitie

Alleen jpeg- en png-bestanden worden ondersteund.

Screenshot voorbeeld

Screenshot("buttonClicked.png")

Wachten

Wait(Control, Property, Value)

Deze functie wacht tot de eigenschap van het besturingselement gelijk is aan de opgegeven waarde.

Wacht voorbeeld

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

Voorbeeldfuncties

De volgende functies kunnen optioneel worden opgenomen in tests wanneer de Power Fx Preview-naamruimte wordt gebruikt door Preview toe te voegen aan de allowPowerFxNamespaces lijst in de extensionModules eigenschap van de testSettings.

Notitie

  • Previewfuncties zijn onderhevig aan verandering. Naarmate deze functies breder inzetbaar worden, worden ze binnen de TestEngine naamruimte verplaatst.
  • U kunt door de gebruiker gedefinieerde functies gebruiken om functies te verpakken en zo de migratie naar niet-previewversies van de functie eenvoudiger te maken. Preview
  • U kunt het model bijvoorbeeld alleen een JSON-object laten retourneren, dat u kunt parseren met behulp van de functie ParseJSON .

Voorbeeld.AIExecutePrompt

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

Roep een aangepaste AI Builder prompt aan en ontvang tekstuele resultaten van de uitvoering.

Notitie

Raadpleeg de sectie Dataverse AI-integratie voor informatie over de beschikbaarheid en configuratie van deze functie.

Zie Using Preview.AIExecutePrompt voor meer informatie en beschrijvingen over het gebruik van deze functie.

Preview.AIExecutePrompt-voorbeeld

Het volgende voorbeeld roept de AI-prompt met de naam Country Capital aan met een parameterwaarde van Country en verwacht dat de modeluitvoering één woord retourneert: Parijs

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

Preview.ConsentDialog

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

Wacht tot een toestemmingsdialoog voor een canvastoepassing of een aangepaste pagina voor een modelgestuurde toepassing is bevestigd

Preview.ConsentDialog Voorbeeld

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

Voorbeeld.Pauzeren

Preview.Pause()

Pauzeer de test en toon de Playwright Inspector als u een interactieve test uitvoert

Notitie

Bekend probleem: De Preview.Pause-functie opent de inspector niet goed voor een PAC-testuitvoering
Beschrijving: De Preview.Pause functie kan de inspector niet openen tijdens a pac test run.
tijdelijke oplossing: De open source-versie van de Test Engine kan worden gebruikt voor pauzefunctionaliteit.

Voorbeeld van Preview.Pauze

Preview.Pause()

Voorbeeld.SelectControl

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

Selecteer een besturingselement met behulp van het document Object Model

Preview.SelectControl Voorbeeld

Selecteer eerste Button3 match

Preview.SelectControl(Button3,1);

Preview.ToneelschrijverActie

Preview.PlaywrightAction(Text, Text)

Een actie uitvoeren op de huidige pagina met behulp van een Playwright CSS of XPath Locator

Preview.PlaywrightAction Voorbeelden

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

Preview.PlaywrightActionValue

Preview.PlaywrightActionValue(Text, Text, Text)

Voer een actie uit op de huidige pagina met behulp van een Playwright CSS of XPath Locator met een waarde

Preview.PlaywrightActionValue Voorbeelden

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

Preview.ToneelschrijverScript

Preview.PlaywrightScript(Text)

Voer het C#-script uit op de huidige pagina

Notitie

Deze functie is alleen geïmplementeerd voor de Debug-build van de open source-versie van Test Engine en niet in pac-testrun.

Preview.PlaywrightScript Voorbeeld

Preview.PlaywrightScript("sample.csx")

Met de inhoud van de sample.csx vergelijkbare 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})

Wanneer er een oproep wordt gedaan van Power Apps naar een connectortype gevonden in Lijst met alle Power Apps connectoren

Preview.SimulateConnector Voorbeeld

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})

Preview.SimulateDataverse-voorbeeld

In dit voorbeeld wordt een aanroep gedaan om de entiteit met de logische naam te bevragen. De records worden geretourneerd met behulp van de tabelfunctie. Dataverse sample_combotable...

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"
    }
    )
});

Dataverse en Connector Simulatie met Test Engine (preview)