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
Os recursos de versão preliminar não foram criados para uso em ambientes de produção e podem ter funcionalidade restrita. Esses recursos são disponibilizados antes de um lançamento oficial para que os clientes possam ter acesso antecipado e forneçam comentários.
Visão geral
Power Apps O Test Engine usa o 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 aprimora o 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 mecanismo de teste | Description |
|---|---|
| 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 |
| Power Fx Integração | 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 acesso condicional e Microsoft Entra |
| Dataverse Integração | 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 para vários navegadores 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
- Power Fx Camada: As etapas de teste escritas em Power Fx são interpretadas e executadas por meio da camada do 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 CSS ou XPath seletores:
# 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 | Description | Exemplo |
|---|---|---|
| Prévia.DramaturgoAção | Executar uma ação em elementos usando seletores CSS ou DOM | Preview.PlaywrightAction("//button", "click") Veja Operações comuns de ação do dramaturgo |
| Visualização.PlaywrightActionValue | Execute uma ação que requer um parâmetro de valor | Preview.PlaywrightActionValue("//input[@data-id='1']", "fill", "Hello") Veja Operações comuns de valor de ação do dramaturgo |
| Pré-visualização.Script de dramaturgo | Execute um script C# personalizado que faça interface com o Playwright | Preview.PlaywrightScript("sample.csx") Veja Avançado: Roteiros de dramaturgos 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 comuns do dramaturgo
As seguintes operações podem ser executadas com Preview.PlaywrightAction:
| Para | Description | 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 comuns de valor de ação do dramaturgo
As seguintes operações podem ser executadas com Preview.PlaywrightActionValue:
| Para | Description | 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 Power Platform aplicativos que necessitam de tratamento especial
- Depuração de cenários de teste complexos onde mais controle é necessário
- 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 dramaturgos
- Implementar a estrutura de classe necessária
- Chame o script a partir das 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 do navegador local 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 headless:
# 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 do Test Engine:
- Concentre-se em objetos de nível de aplicativo em vez de elementos DOM
- Use Power Fx funções para lógica complexa em vez de JavaScript bruto
- 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