Power Apps Test Engine Power Fx Functions (afgeschaft)

Note

De test-engine is afgeschaft en wordt verwijderd in een toekomstige release. Gebruik Power Platform Playwright-voorbeelden voor testautomatiseringsmogelijkheden in Power Platform en Dynamics 365-services.

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

Screenshot

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.

Note

Alleen jpeg- en png-bestanden worden ondersteund.

Schermafbeelding Voorbeeld

Screenshot("buttonClicked.png")

Wait

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

Voorbeeldweergavefuncties

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.

Note

  • 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 Custom AI Builder prompt aan en haal tekstresultaten op van de uitvoering.

Note

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

Voorvertoning Pauzeren

Preview.Pause()

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

Note

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.
Oplossing: De open source-versie van de test-engine kan worden gebruikt voor pauzefunctionaliteit.

Voorbeeld van Preview.Pause

Preview.Pause()

Voorbeeld.SelectControl

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

Selecteer een element met behulp van de Document Object Model

Preview.SelectControl Voorbeeld

Selecteer eerste Button3 overeenkomst

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.PlaywrightScript

Preview.PlaywrightScript(Text)

Voer het C#-script uit op de huidige pagina

Note

Deze functie wordt alleen geïmplementeerd voor de Debug build van de open source versie van Test Engine, niet in pac-testuitvoering.

Preview.PlaywrightScript Voorbeeld

Preview.PlaywrightScript("sample.csx")

Met een inhoud die lijkt op de code van sample.csx.

// 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 een aanroep wordt uitgevoerd van Power Apps naar een connectortype dat is gevonden vanuit Lijst van alle Power Apps connectors

Preview.SimulateConnector Voorbeeld

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

Voorvertoning.SimuleerDataverse

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

Preview.SimulateDataverse-voorbeeld

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

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 (verouderd)