Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Nota
As funcionalidades de pré-visualização não se destinam à produção e poderão ter funcionalidades restritas. Estas funcionalidades estão disponíveis antes do lançamento oficial, para que os clientes possam ter acesso antecipadamente e enviar comentários.
O Test Engine utiliza estas funções existentes do PowerFx:
Estas funções estão disponíveis para utilização apenas no Test Engine:
O Test Engine fornece estas funções de pré-visualização:
- Preview.AIExecutePrompt
- Preview.ConsentDialog
- Preview.Pause
- Preview.PlaywrightAction
- Preview.PlaywrightActionValue
- Preview.PlaywrightScript
- Preview.SelectControl
- Preview.SimulateConnector
- Preview.SimulateDataverse
Funções do Test Engine
Estas funções só estão disponíveis para serem utilizadas com o Test Engine
Captura de ecrã
Screenshot(fileNameOfScreenshot)
Esta função captura uma captura de ecrã da aplicação no momento atual. O ficheiro de captura de ecrã é guardado na pasta de saída do teste e com o nome fornecido.
Nota
Apenas ficheiros jpeg e png são suportados.
Exemplo de captura de ecrã
Screenshot("buttonClicked.png")
Espera
Wait(Control, Property, Value)
Esta função aguarda que a propriedade do controlo seja igual ao valor especificado.
Exemplo da função de espera
Wait(Label1, "Text", "0")
Funções de pré-visualização
As seguintes funções podem ser opcionalmente incluídas em testes quando o espaço de nomes Pré-visualização do Power Fx for utilizado, adicionando Preview à lista allowPowerFxNamespaces na propriedade extensionModules de testSettings.
Nota
- As funções de pré-visualização estão sujeitas a alterações. À medida que estas funções estiverem prontas para uma utilização mais ampla, serão consideradas para migração para o espaço de nomes
TestEngine. - Pode utilizar Funções Definidas pelo Utilizador para encapsular funções
Preview, tornando mais fácil e migração para versões de não pré-visualização da função. - Pode fazer com que o modelo devolva apenas um objeto JSON que pode ser analisado utilizando a função
ParseJSON.
Preview.AIExecutePrompt
Preview.AIExecutePrompt(Name, {Property: Type})
Chame um prompt do Custom AI Builder e obtenha resultados textuais da execução.
Nota
Consulte a secção Integração de IA do Dataverse para obter informações sobre a disponibilidade e a configuração desta função.
Reveja a secção Utilização de Preview.AIExecutePrompt para obter mais detalhes e descrições sobre a utilização desta função.
Exemplo de Preview.AIExecutePrompt
O exemplo seguinte chama o pedido de IA denominado Capital do País com um valor de parâmetros de País e aguarda que a execução do modelo devolva uma única palavra, Paris
Assert("Paris" = Preview.AIExecutePrompt("Country Capital", { Country: "France" }).Text)
Preview.ConsentDialog
Preview.ConsentDialog(Table({Text: Text}));
Aguarda para confirmar uma caixa de diálogo de consentimento para uma página personalizada de uma aplicação de tela ou de uma aplicação condicionada por modelo
Exemplo de Preview.ConsentDialog
Preview.ConsentDialog(Table({Text: "Your Dialog Title"}));
Preview.Pause
Preview.Pause()
Pausa o teste e apresenta o Playwright Inspector se estiver a executar um teste interativo
Nota
Problema já conhecido: A função Preview.Pause não abre corretamente o inspetor para execução de teste pac
Descrição: A função Preview.Pause falha ao abrir o inspetor durante um pac test run.
Solução alternativa: A versão open source do Motor 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 controlo utilizando o modelo DOM (Document Object Model)
Exemplo de Preview.SelectControl
Selecionar a primeira correspondência Button3
Preview.SelectControl(Button3,1);
Preview.PlaywrightAction
Preview.PlaywrightAction(Text, Text)
Executar uma ação na página atual utilizando um Localizador CSS ou XPath Playwright
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 utilizando um Localizador CSS ou XPath Playwright 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 é implementada apenas para a build Debug da versão de código aberto do Test Engine, não em pac test run.
Exemplo de Preview.PlaywrightScript
Preview.PlaywrightScript("sample.csx")
Com o conteúdo de 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 Power Apps para um tipo de conector encontrado em Lista de todos os conectores Power Apps
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 é feita uma chamada para consultar a entidade Dataverse com o nome lógico sample_combotable, devolve os registos utilizando a função Tabela
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"
}
)
});
Artigos relacionados
Simulação do Dataverse e dos Conectores com o Test Engine (pré-visualização)