Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Observação
O Mecanismo de Teste foi preterido e será removido em uma versão futura. Use exemplos Power Platform Playwright para testar recursos de automação no Power Platform e serviços de Dynamics 365.
Visão geral
Power Apps Mecanismo de Testes usa Playwright como sua principal tecnologia de automação de navegador. Essa integração fornece ao Test Engine recursos de teste poderosos, confiáveis e entre navegadores, ao mesmo tempo em que adiciona várias camadas de abstração para simplificar a criação de testes para Power Platform aplicativos.
Como o Test Engine melhora o desempenho do Playwright
Embora o Playwright ofereça excelentes recursos de automação de navegador, o Test Engine estende esses recursos especificamente para Power Platform:
| Melhoria do motor de teste | Descrição |
|---|---|
| Abstrações em nível de aplicativo | O Test Engine funciona com objetos de nível de aplicativo em vez de elementos DOM, tornando os testes mais resilientes às mudanças da IU |
| Integração Power Fx | O Test Engine adiciona Power Fx suporte, permitindo uma abordagem de baixo código para a criação de testes |
| Autenticação Integrada | Mecanismos de autenticação pré-construídos lidam com cenários de Microsoft Entra e acesso condicional |
| Integração com o Dataverse | A integração direta com Dataverse permite testes abrangentes de ponta a ponta |
| Provedores Especializados | Provedores otimizados para aplicativos Canvas e aplicativos baseados em modelos |
Implementação técnica
As seções a seguir descrevem como o Test Engine se baseia na base de automação de navegador do Playwright e a integra com abstrações específicas, permitindo uma automação de teste robusta e sustentável. Power Platform
Base de automação do navegador
O Test Engine utiliza os principais recursos do Playwright para automação consistente do navegador:
- suporte Cross-browser para Chrome, Firefox e Microsoft Edge
- Mecanismos de espera confiáveis que esperam automaticamente que os elementos estejam prontos
- Interceptação de solicitação de rede para simular respostas de API
- Ferramentas de rastreamento e depuração para diagnosticar falhas de teste
Integração arquitetônica do Test Engine
- Camada do provedor: A camada do provedor no Test Engine faz interface diretamente com as APIs do Playwright para controlar o comportamento do navegador
- Modelo de Objeto: Em vez de trabalhar com elementos DOM brutos, o Test Engine mapeia para modelos de objetos específicos do aplicativo
- Camada Power Fx: As etapas de teste escritas em Power Fx são interpretadas e executadas por meio da camada de provedor
Principais características técnicas
As seções a seguir destacam recursos técnicos importantes que o Test Engine adiciona ao Playwright, incluindo seletores específicos do aplicativo, geranciamento de contexto do navegador e acesso direto às funções do Playwright para cenários avançados.
Seletores específicos do aplicativo
O Test Engine usa seletores específicos do aplicativo em vez de seletores CSS ou XPath.
# Test Engine (using app-level selectors)
- testSteps: |
Select(Button1)
# Equivalent in raw Playwright (using DOM selectors)
Select(Button1)
# page.locator('div[data-control-name="Button1"]').click();
Gerenciamento de contexto do navegador
O Test Engine gerencia contextos de navegador para dar suporte a vários cenários de autenticação:
# Test Engine handles browser context automatically
pac test run `
--provider canvas `
--test-plan-file testplan.te.yaml `
--tenant $tenantId `
--environment-id $environmentId
Funções de dramaturgo direto
Embora o Test Engine abstraia muitas interações do Playwright, há cenários em que o acesso direto aos recursos do Playwright pode ser valioso. O Test Engine fornece diversas funções de visualização que permitem interação direta com o Playwright dentro das suas Power Fx etapas de teste.
Usando funções do Playwright no Test Engine
O Test Engine inclui as seguintes funções de visualização que permitem aplicar os recursos de seleção de elementos do Playwright:
| Função | Descrição | Exemplo |
|---|---|---|
| Prévia.PlaywrightAction | Executar uma ação em elementos usando seletores CSS ou DOM | Preview.PlaywrightAction("//button", "click") Consulte Operações de Ação Playwright Comuns |
| Preview.PlaywrightActionValue | Execute uma ação que requer um parâmetro de valor | Preview.PlaywrightActionValue("//input[@data-id='1']", "fill", "Hello") Consulte Operações de Valor de Ação Playwright Comuns |
| Prévia.PlaywrightScript | Execute um script C# personalizado que faça interface com o Playwright | Preview.PlaywrightScript("sample.csx") Veja Avançado: Scripts de Playwright Personalizados |
| Visualizar.Pausar | Pausar a execução do teste e exibir o Inspetor de Dramaturgo | Preview.Pause() |
Observação
Para usar essas funções de visualização, você deve adicioná-las à lista permitida na seção de configurações de teste.
Operações de Ação Playwright Comuns
As seguintes operações podem ser executadas com Preview.PlaywrightAction:
| Ação | Descrição | Exemplo |
|---|---|---|
click |
Seleção de um elemento usando evento de clique | Preview.PlaywrightAction("//button[@id='submit']", "click") |
exists |
Verifique se um elemento existe | Preview.PlaywrightAction("//div[@class='error-message']", "exists") |
wait |
Aguarde até que um elemento esteja disponível | Preview.PlaywrightAction("//table[@data-loading='false']", "wait") |
Operações de Valor de Ação Playwright Comuns
As seguintes operações podem ser executadas com Preview.PlaywrightActionValue:
| Ação | Descrição | Exemplo |
|---|---|---|
fill |
Preencha um campo de formulário com texto | Preview.PlaywrightActionValue("//input[@name='search']", "fill", "Product name") |
select |
Selecione uma opção de uma lista de seleção | Preview.PlaywrightActionValue("//select", "select", "Option2") |
setAttribute |
Definir um atributo em um elemento | Preview.PlaywrightActionValue("//div", "setAttribute", "data-custom='value'") |
Quando usar funções diretas do Playwright
Embora abstrações em nível de aplicativo sejam preferidas, funções diretas do Playwright são úteis nestes cenários:
- Interações complexas da IU não cobertas pelas funções padrão do mecanismo de teste
- Componentes de terceiros dentro de aplicativos do Power Platform que exigem tratamento especial
- Depuração de cenários de teste complexos onde é necessário mais controle
- Validação avançada de estados ou propriedades de elementos
Exemplo: Abordagem combinada
Este exemplo demonstra a combinação de abstrações no nível do aplicativo com ações diretas do Playwright:
testSteps: |
# Use app-level abstraction for Power Apps control
Select(SubmitButton);
# Use direct Playwright action for a third-party component
Preview.PlaywrightAction("//div[@class='custom-calendar']//button[@data-day='15']", "click");
# Wait for a specific condition using Playwright
Preview.PlaywrightAction("//div[@data-status='complete']", "wait");
# Resume using app-level abstractions
Assert(Label1.Text = "Submission Complete");
Avançado: roteiros personalizados do Dramaturgo
Para cenários altamente especializados, você pode criar scripts personalizados do Playwright:
- Crie um
.csxarquivo com sua lógica personalizada do Playwright - Referência necessária para montagens de Playwright
- Implementar a estrutura de classe necessária
- Chame o script nas etapas do teste
// sample.csx
#r "Microsoft.Playwright.dll"
#r "Microsoft.Extensions.Logging.dll"
using Microsoft.Playwright;
using Microsoft.Extensions.Logging;
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();
// Custom Playwright logic here
}
}
Observação
Preview.PlaywrightScript é implementado apenas para compilações de depuração do Test Engine criado a partir do código-fonte, não na ferramenta pac test run lançada.
Integração com o processo de desenvolvimento
As seções a seguir descrevem como o Test Engine e o Playwright podem ser usados em ambientes de desenvolvimento local e de CI/CD, oferecendo suporte a uma variedade de fluxos de trabalho, desde depuração interativa até execução automatizada de pipeline.
Desenvolvimento local
Para desenvolvimento local, o Test Engine fornece um ambiente completo:
- Execução local do navegador com visibilidade da IU
- Execução de teste passo a passo
- Registros e diagnósticos detalhados
Integração CI/CD
Em ambientes de CI/CD, o Test Engine pode executar o Playwright no modo sem interface gráfica:
# Example Azure DevOps pipeline step
- task: PowerShell@2
displayName: 'Run Test Engine Tests'
inputs:
script: |
pac test run `
--provider canvas `
--test-plan-file "$(Build.SourcesDirectory)/tests/testplan.te.yaml" `
--tenant "$(TenantId)" `
--environment-id "$(EnvironmentId)"
Práticas recomendadas
Ao trabalhar com a integração do Playwright na Test Engine:
- Concentre-se em objetos de nível de aplicativo em vez de elementos DOM
- Use funções do Power Fx para lógica complexa em vez de JavaScript cru
- Aproveite os mecanismos de autenticação integrados
- Reserve funções diretas do Playwright para cenários onde as abstrações no nível do aplicativo são insuficientes
- Revisar os testes gerados para otimizar a legibilidade e a manutenção