Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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.
Descrição geral
Power Apps O Test Engine usa o Playwright como sua principal tecnologia de automação de navegadores. 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 Playwright
Enquanto o Playwright oferece excelentes recursos de automação do navegador, o Test Engine estende esses recursos especificamente para Power Platform:
| Aprimoramento do mecanismo de teste | Description |
|---|---|
| Abstrações no nível do aplicativo | O mecanismo de teste funciona com objetos no nível do aplicativo em vez de elementos DOM, tornando os testes mais resilientes às alterações da interface do utilizador |
| Power Fx Integração | O mecanismo de teste adiciona Power Fx suporte, permitindo uma abordagem low-code para a criação de testes |
| Autenticação integrada | Manipulador de Microsoft Entra mecanismos de autenticação pré-criados e cenários de acesso condicional |
| Dataverse Integração | A integração direta com Dataverse permite testes abrangentes de ponta a ponta |
| Fornecedores Especializados | Provedores otimizados para aplicativos Canvas e aplicativos orientados por modelo |
Execução técnica
As seções a seguir descrevem como o Test Engine se baseia na base de automação do navegador do Playwright e a integra com Power Platform abstrações específicas, permitindo uma automação de teste robusta e sustentável.
Base de automação do navegador
O Test Engine utiliza os principais recursos do Playwright para automação consistente do navegador:
- Suporte entre navegadores para Chrome, Firefox e Microsoft Edge
- Mecanismos de espera fiáveis que aguardam automaticamente que os elementos estejam prontos
- Intercetação de solicitações 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 fornecedor: a camada do fornecedor no mecanismo de teste 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 mecanismo de teste mapeia para modelos de objeto específicos do aplicativo
- Power Fx Camada: As etapas de teste escritas são Power Fx interpretadas e executadas através da camada do fornecedor
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, gerenciamento de contexto do navegador e acesso direto às funções do Playwright para cenários avançados.
Seletores específicos do aplicativo
O mecanismo de teste usa seletores específicos do aplicativo em vez de seletores OR CSS 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 oferecer 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 diretas de Playwright
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 várias funções de visualização que permitem a interação direta com o Playwright a partir das etapas Power Fx de teste.
Usando funções de 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:
| Function | Description | Exemplo |
|---|---|---|
| Preview.PlaywrightAction | Executar uma ação em elementos usando CSS seletores DOM ou | Preview.PlaywrightAction("//button", "click") Ver Operações de Ação Comuns do Dramaturgo |
| Preview.PlaywrightActionValue | Executar uma ação que requer um parâmetro value | Preview.PlaywrightActionValue("//input[@data-id='1']", "fill", "Hello") Consulte Operações de Valor de Ação de Dramaturgia Comum |
| Preview.PlaywrightScript | Executar um script C# personalizado que faz interface com o Playwright | Preview.PlaywrightScript("sample.csx") Consulte Avançado: Scripts de dramaturgia personalizados |
| Pré-visualização.Pausa | Pausar a execução do teste e exibir o Inspetor de Dramaturgia | Preview.Pause() |
Nota
Para usar essas funções de visualização, você deve adicionar as funções de visualização à lista de permissões na secção de definições de teste.
Operações comuns de ação do dramaturgo
As seguintes operações podem ser executadas com Preview.PlaywrightAction:
| Ação | Description | Exemplo |
|---|---|---|
click |
Seleção de um elemento usando o evento click | Preview.PlaywrightAction("//button[@id='submit']", "click") |
exists |
Verificar se existe um elemento | 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:
| Ação | Description | Exemplo |
|---|---|---|
fill |
Preencher 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 de Playwright
Embora as abstrações no nível do aplicativo sejam preferidas, as funções diretas do Playwright são úteis nestes cenários:
- Interações complexas da interface do utilizador não cobertas pelas funções padrão do mecanismo de teste
- Componentes de terceiros em Power Platform aplicações que necessitam de um manuseamento especial
- Depurando 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 de 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: scripts personalizados de dramaturgia
Para cenários altamente especializados, você pode criar scripts de Playwright personalizados:
- Crie um
.csxarquivo com sua lógica de Playwright personalizada - Referência necessária Montagens de dramaturgo
- Implementar a estrutura de classes necessária
- Chamar o script a partir das etapas de 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
}
}
Nota
Preview.PlaywrightScript só é implementado para compilações de depuração do Test Engine criadas a partir do código-fonte, não na ferramenta lançada pac test run .
Integração com 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 CI/CD, suportando uma variedade de fluxos de trabalho, desde depuração interativa até execução automatizada de pipeline.
Desenvolvimento local
Para o desenvolvimento local, o Test Engine fornece um ambiente completo:
- Execução do navegador local com visibilidade da interface do utilizador
- Execução de testes passo a passo
- Logs e diagnósticos detalhados
Integração CI/CD
Em ambientes 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)"
Melhores práticas
Ao trabalhar com a integração Playwright do Test Engine:
- Concentre-se em objetos no nível do aplicativo em vez de elementos DOM
- Use Power Fx funções para lógica complexa em vez de JavaScript bruto
- Tire partido dos mecanismos de autenticação incorporados
- Reserve funções diretas de Playwright para cenários em que as abstrações no nível do aplicativo são insuficientes
- Revise os testes gerados para otimizar a legibilidade e a manutenção