Partilhar via


Power Apps Funções do motor Power Fx de teste (pré-visualização)

Nota

As funcionalidades de pré-visualização não se destinam à produção e poderão ter caraterísticas restritas. Estas caraterísticas estão disponíveis antes do lançamento oficial, para que os clientes possam ter acesso antecipado e enviar comentários.

O motor de teste utiliza estas funções PowerFx existentes:

Estas funções estão disponíveis para utilização apenas no motor de teste:

O mecanismo de teste fornece estas funções de visualização:

Funções do motor de ensaio

Estas funções só estão disponíveis para serem utilizadas com o motor de teste

Captura de ecrã

Screenshot(fileNameOfScreenshot)

Esta função captura uma captura de tela do aplicativo no momento atual. O arquivo de captura de tela é salvo na pasta de saída de teste e com o nome fornecido.

Nota

Apenas ficheiros jpeg e png são suportados.

Exemplo de captura de tela

Screenshot("buttonClicked.png")

Wait

Wait(Control, Property, Value)

Esta função aguarda que a propriedade do controle seja igual ao valor especificado.

Exemplo de espera

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

Funções de pré-visualização

As funções a seguir podem, opcionalmente, ser incluídas em testes quando o Power Fx namespace Preview é adicionado Preview à allowPowerFxNamespaces lista na propriedade extensionModules do testSettings.

Nota

  • As funções de pré-visualização estão sujeitas a alterações. À medida que essas funções se tornam prontas para uso mais amplo, elas são consideradas para se mover dentro do TestEngine namespace.
  • Você pode usar funções definidas pelo utilizador para encapsular Preview funções para facilitar a migração para versões não visualizadas da função.
  • Você pode fazer com que o modelo retorne apenas um objeto JSON que você pode analisar usando a ParseJSON função.

Pré-visualização.AIExecutePrompt

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

Chame um prompt AI Builder personalizado e obtenha os resultados de texto da execução.

Nota

Consulte a secção AI Integration Dataverse para obter informações sobre a disponibilidade e configuração desta função.

Consulte Usando Preview.AIExecutePrompt para obter mais detalhes e descrições do uso dessa função.

Exemplo de Preview.AIExecutePrompt

O exemplo a seguir chama o AI Prompt chamado Country Capital com um valor de parâmetros de Country e espera que a execução do modelo retorne uma única palavra Paris

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

Preview.ConsentDialog

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

Aguarde para confirmar uma caixa de diálogo de consentimento para um aplicativo de tela ou página personalizada de aplicativo controlado por modelo

Exemplo de Preview.ConsentDialog

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

Pré-visualização.Pausa

Preview.Pause()

Pause o teste e exiba o Inspetor de Playwright se estiver a executar um teste interativo

Nota

Problema conhecido: A função Preview.Pause não abre corretamente o inspetor para execução de teste pac
Descrição: A Preview.Pause função falha ao abrir o inspetor durante a pac test run.
Solução alternativa: A versão de código aberto do mecanismo de teste pode ser usada para a funcionalidade de pausa.

Exemplo de Preview.Pause

Preview.Pause()

Preview.SelectControl

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

Selecionar um controle usando o Document Object Model

Exemplo de Preview.SelectControl

Selecionar primeira Button3 correspondência

Preview.SelectControl(Button3,1);

Preview.PlaywrightAction

Preview.PlaywrightAction(Text, Text)

Executar uma ação na página atual usando um Playwright CSS ou XPath Localizador

Exemplos de Preview.PlaywrightAction

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

Preview.PlaywrightActionValue

Preview.PlaywrightActionValue(Text, Text, Text)

Executar uma ação na página atual usando um Playwright CSS ou XPath Localizador com um valor

Exemplos de Preview.PlaywrightActionValue

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

Preview.PlaywrightScript

Preview.PlaywrightScript(Text)

Executar o script C# na página atual

Nota

Esta função só é implementada para a compilação de depuração a partir da versão de código aberto do Test Engine não em execução de teste pac.

Exemplo de Preview.PlaywrightScript

Preview.PlaywrightScript("sample.csx")

Com o conteúdo do sample.csx semelhante a este código:

// 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 uma chamada é feita de um tipo de Power Apps conector encontrado em Lista de todos os Power Apps conectores

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

Exemplo de Preview.SimulateDataverse

Este exemplo, quando uma chamada é feita para consultar a Dataverse entidade com nome sample_combotable lógico, ela retorna os registros usando a função 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"
    }
    )
});

Dataverse e simulação de conector com motor de teste (visualização)