Condividi tramite


Anteprima delle funzioni Power Fx nel motore di test Power Apps

Nota

Le funzionalità di anteprima non sono destinate ad essere utilizzate per la produzione e sono soggette a restrizioni. Queste funzionalità sono disponibili prima di una versione ufficiale in modo che i clienti possano ottenere l'accesso iniziale e fornire dei commenti.

Test engine utilizza queste funzioni PowerFx esistenti:

Queste funzioni sono disponibili solo per l'uso in Test Engine:

Test Engine fornisce queste funzionalità di anteprima:

Funzioni di Test Engine

Queste funzioni sono disponibili solo per l'uso in Test Engine

Screenshot

Screenshot(fileNameOfScreenshot)

Questa funzione acquisisce uno screenshot dell'app nel momento corrente. Il file dello screenshot viene salvato nella cartella di output del test con il nome fornito.

Nota

Sono supportati solo i file jpeg e png.

Screenshot di esempio

Screenshot("buttonClicked.png")

Attesa

Wait(Control, Property, Value)

Questa funzione attende che la proprietà del controllo sia uguale al valore specificato.

Esempio di attesa

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

Funzioni di anteprima

Le seguenti funzioni possono essere facoltativamente incluse nei test quando lo spazio dei nomi dell'anteprima di Power Fx aggiungendo Preview alla proprietà allowPowerFxNamespaces elenco nella proprietà extensionModules di testSettings.

Nota

  • Le funzioni di anteprima sono soggette a modifiche. Man mano che queste funzioni saranno pronte per un utilizzo più ampio, crediamo che dovranno essere spostate all'interno dello spazio dei nomi TestEngine.
  • Puoi utilizzare le funzioni definite dall'utente per racchiudere le funzioni Preview e semplificare la migrazione alle versioni non di anteprima della funzione.
  • Puoi fare in modo che il modello restituisca solo un oggetto JSON che è possibile analizzare utilizzando la funzione ParseJSON.

Preview.AIExecutePrompt

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

Chiamare un prompt Custom AI Builder e ottenere i risultati di testo dell'esecuzione.

Nota

Per informazioni sulla disponibilità e la configurazione di questa funzione, consulta la sezione Integrazione AI Dataverse.

Per maggiori dettagli e descrizioni sull'utilizzo di questa funzione, consulta Utilizzo di Preview.AIExecutePrompt.

Esempio di Preview.AIExecutePrompt

L'esempio seguente richiama il prompt IA denominato Country Capital con un valore di parametro pari a Country e richiede che l'esecuzione del modello restituisca una singola parola Paris

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

Preview.ConsentDialog

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

Attendi per confermare una finestra di dialogo di consenso per una pagina personalizzata di un'applicazione canvas o di un'applicazione basata su modello

Esempio di Preview.ConsentDialog

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

Preview.Pause

Preview.Pause()

Metti in pausa il test e visualizza Playwright Inspector se stai eseguendo un test interattivo

Nota

Problema noto: La funzione Preview.Pause non apre correttamente l'ispettore per l'esecuzione del test PAC
Descrizione: la funzione Preview.Pause non riesce ad aprire il controllo durante un pac test run.
Workaround: La versione open source del motore di test può essere usata per la funzionalità di sospensione.

Esempio di Preview.Pause

Preview.Pause()

Preview.SelectControl

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

Seleziona un controllo utilizzando Document Object Model

Esempio Preview.SelectControl

Seleziona la prima corrispondenza Button3

Preview.SelectControl(Button3,1);

Preview.PlaywrightAction

Preview.PlaywrightAction(Text, Text)

Esegui un'azione sulla pagina corrente utilizzando un localizzatore Playwright CSS o XPath

Esempi di Preview.PlaywrightAction

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

Preview.PlaywrightActionValue

Preview.PlaywrightActionValue(Text, Text, Text)

Esegui un'azione sulla pagina corrente utilizzando un localizzatore Playwright CSS o XPath con un valore

Esempi di Preview.PlaywrightActionValue

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

Preview.PlaywrightScript

Preview.PlaywrightScript(Text)

Esegui lo script C# sulla pagina corrente

Nota

Questa funzione è implementata solo per la build Debug della versione open source del motore di test, ma non in pac test run.

Esempio di Preview.PlaywrightScript

Preview.PlaywrightScript("sample.csx")

Con il contenuto del sample.csx simile a questo codice:

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

Quando viene effettuata una chiamata da Power Apps a un tipo di connettore trovato da List di tutti i connettori Power Apps

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

Esempio di Preview.SimulateDataverse

In questo esempio, quando viene effettuata una chiamata per interrogare l'entità Dataverse con nome logico sample_combotable, vengono restituiti i record utilizzando la funzione Tabella

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 e simulazione del connettore con Test Engine (anteprima)