Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
Nota
As funcionalidades de vista previa non se deseñaron para uso de produción e poden ter funcionalidade restrinxida. Estas funcionalidades están dispoñibles antes da versión oficial para que os clientes poidan obter acceso a elas rápido e fornecer comentarios.
Visión xeral
Power Apps Test Engine usa *Playwright* como a súa tecnoloxía principal de automatización do navegador. ... Esta integración proporciona a Test Engine capacidades de probas potentes, fiables e multinavegador, ao tempo que engade varias capas de abstracción para simplificar a creación de probas para aplicacións. Power Platform
Como o motor de probas mellora o dramaturgo
Aínda que Playwright ofrece excelentes capacidades de automatización do navegador, Test Engine amplía estas capacidades especificamente para Power Platform:
| Mellora do motor de probas | Descripción |
|---|---|
| Abstraccións a nivel de aplicación | O motor de probas funciona con obxectos a nivel de aplicación en lugar de elementos DOM, o que fai que as probas sexan máis resistentes aos cambios na interface de usuario. |
| Power Fx Integración | Test Engine engade compatibilidade, o que permite unha abordaxe de baixo código para a creación de probas Power Fx |
| Autenticación integrada | Os mecanismos de autenticación predefinidos xestionan escenarios de acceso condicional e Microsoft Entra |
| Dataverse Integración | A integración directa con Dataverse permite probas exhaustivas de extremo a extremo |
| Provedores especializados | Provedores optimizados para aplicacións de lenzo e aplicacións baseadas en modelos |
Implementación técnica
As seguintes seccións describen como Test Engine se basea na automatización do navegador de Playwright e a integra con abstraccións específicas de Power Platform, o que permite unha automatización de probas robusta e mantible.
Fundamentos da automatización do navegador
O motor de probas utiliza as capacidades principais de Playwright para unha automatización consistente do navegador:
- Compatibilidade entre navegadores para Chrome, Firefox e Microsoft Edge
- Mecanismos de espera fiables que agardan automaticamente a que os elementos estean listos
- Intercepción de solicitudes de rede para simular respostas da API
- Ferramentas de rastrexo e depuración para diagnosticar fallos nas probas
Integración arquitectónica do motor de probas
- Capa de provedor: A capa de provedor en Test Engine interactúa directamente coas API de Playwright para controlar o comportamento do navegador
- Modelo de obxectos: En lugar de traballar con elementos DOM brutos, o motor de probas mapéase a modelos de obxectos específicos da aplicación
- Power Fx Capa: Os pasos de proba escritos en Power Fx interprétanse e execútanse a través da capa do provedor
Características técnicas clave
As seguintes seccións destacan as características técnicas importantes que Test Engine engade a Playwright, como selectores específicos da aplicación, xestión do contexto do navegador e acceso directo ás funcións de Playwright para escenarios avanzados.
Selectores específicos da aplicación
Test Engine usa selectores específicos da aplicación en lugar de selectores 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();
Xestión do contexto do navegador
O motor de probas xestiona os contextos do navegador para admitir varios escenarios de autenticación:
# Test Engine handles browser context automatically
pac test run `
--provider canvas `
--test-plan-file testplan.te.yaml `
--tenant $tenantId `
--environment-id $environmentId
Funcións de dramaturgo directo
Aínda que Test Engine abstrae moitas interaccións de Playwright, hai escenarios nos que o acceso directo ás capacidades de Playwright pode ser valioso. O motor de probas ofrece varias funcións de vista previa que permiten a interacción directa con Playwright desde os teus pasos de proba. Power Fx
Uso das funcións de Playwright en Test Engine
O motor de probas inclúe as seguintes funcións de vista previa que che permiten aplicar as capacidades de selección de elementos de Playwright:
| Function | Descripción | Exemplo |
|---|---|---|
| Vista previa.DramaturgoAcción | Executar unha acción sobre elementos usando selectores CSS ou DOM | Preview.PlaywrightAction("//button", "click") Véxase Operacións comúns de acción dun dramaturgo |
| Vista previa.Valor da acción do dramaturgo | Executar unha acción que require un parámetro de valor | Preview.PlaywrightActionValue("//input[@data-id='1']", "fill", "Hello") Consultar Operacións comúns de valor de acción de dramaturgo |
| Vista previa.Script de dramaturgo | Executar un script C# personalizado que interactúe con Playwright | Preview.PlaywrightScript("sample.csx") Ver Avanzado: Guións de dramaturgo personalizados |
| Vista previa.Pausa | Pausar a execución da proba e mostrar o Inspector de dramaturgos | Preview.Pause() |
Nota
Para usar estas funcións de vista previa, debes engadilas á lista de opcións permitidas na sección de configuración de probas.
Operacións comúns de acción dramaturga
As seguintes operacións pódense realizar con Preview.PlaywrightAction:
| Acción | Descripción | Exemplo |
|---|---|---|
click |
Selección dun elemento mediante o evento de clic | Preview.PlaywrightAction("//button[@id='submit']", "click") |
exists |
Comprobar se existe un elemento | Preview.PlaywrightAction("//div[@class='error-message']", "exists") |
wait |
Agardar a que un elemento estea dispoñible | Preview.PlaywrightAction("//table[@data-loading='false']", "wait") |
Operacións comúns de valor de acción de dramaturgo
As seguintes operacións pódense realizar con Preview.PlaywrightActionValue:
| Acción | Descripción | Exemplo |
|---|---|---|
fill |
Encher un campo de formulario con texto | Preview.PlaywrightActionValue("//input[@name='search']", "fill", "Product name") |
select |
Seleccionar unha opción dunha lista de selección | Preview.PlaywrightActionValue("//select", "select", "Option2") |
setAttribute |
Definir un atributo nun elemento | Preview.PlaywrightActionValue("//div", "setAttribute", "data-custom='value'") |
Cando usar as funcións directas de Playwriter
Aínda que se prefiren as abstraccións a nivel de aplicación, as funcións directas de Playwright son útiles nestes escenarios:
- Interaccións complexas da interface de usuario non cubertas polas funcións estándar do motor de probas
- Compoñentes de terceiros dentro Power Platform de aplicacións que requiren un manexo especial
- Depuración de escenarios de proba complexos onde se precisa máis control
- Validación avanzada de estados ou propiedades de elementos
Exemplo: Enfoque combinado
Este exemplo demostra a combinación de abstraccións a nivel de aplicación con accións directas 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");
Avanzado: Guións de dramaturgo personalizados
Para escenarios moi especializados, podes crear scripts de Dramaturgo personalizados:
- Crea un ficheiro coa túa lóxica de Playwright personalizada
.csx - Montaxes de dramaturgo requiridas por referencia
- Implementar a estrutura de clases requirida
- Chama o script desde os teus pasos de proba
// 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ó se implementa para compilacións de depuración de Test Engine compiladas desde o código fonte, non na ferramenta pac test run publicada.
Integración co proceso de desenvolvemento
As seguintes seccións describen como se poden usar Test Engine e Playwright tanto en entornos de desenvolvemento local como de CI/CD, o que permite soportar unha variedade de fluxos de traballo, desde a depuración interactiva ata a execución automatizada de canles.
Desenvolvemento local
Para o desenvolvemento local, Test Engine ofrece un entorno completo:
- Execución local do navegador con visibilidade da interface de usuario
- Execución de probas paso a paso
- Rexistros e diagnósticos detallados
Integración de CI/CD
En entornos CI/CD, Test Engine pode executar Playwright en modo sen interface de usuario:
# 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)"
Recomendacións
Ao traballar coa integración de Playwright de Test Engine:
- Céntrase nos obxectos a nivel de aplicación en lugar dos elementos DOM
- Usar Power Fx funcións para lóxica complexa en lugar de JavaScript bruto
- Aproveita os mecanismos de autenticación integrados
- Reservar funcións directas de Playwrit para escenarios onde as abstraccións a nivel de aplicación sexan insuficientes
- Revisar as probas xeradas para optimizar a lexibilidade e o mantemento