Nota
L'accés a aquesta pàgina requereix autorització. Pots provar d'iniciar sessió o canviar de directori.
L'accés a aquesta pàgina requereix autorització. Pots provar de canviar directoris.
Nota
Les característiques de visualització prèvia no estan dissenyades per a un entorn de producció i poden tenir una funcionalitat restringida. Aquestes característiques estan disponibles abans d’un llançament oficial de producte per tal que els clients el puguin utilitzar abans i enviar-nos els seus comentaris.
Informació general
Power Apps Test Engine utilitza Playwright com a tecnologia bàsica d'automatització del navegador. Aquesta integració proporciona a Test Engine capacitats de prova potents, fiables i multinavegador, alhora que afegeix diverses capes d'abstracció per simplificar la creació de proves per Power Platform a les aplicacions.
Com Test Engine millora Playwright
Tot i que Playwright ofereix excel·lents capacitats d'automatització del navegador, Test Engine amplia aquestes capacitats específicament per Power Platform:
| Millora del motor de prova | Descripció |
|---|---|
| Abstraccions a nivell d'aplicació | Test Engine funciona amb objectes de nivell d'aplicació en lloc d'elements DOM, cosa que fa que les proves siguin més resistents als canvis de la interfície d'usuari |
| Power Fx Integració | Test Engine afegeix Power Fx suport, permetent un enfocament de codi baix per a la creació de proves |
| Autenticació integrada | Mecanismes d'autenticació predefinits i Microsoft Entra escenaris d'accés condicional |
| Dataverse Integració | La integració directa amb Dataverse permet proves integrals d'extrem a extrem |
| Proveïdors especialitzats | Proveïdors optimitzats per a aplicacions de llenç i aplicacions basades en models |
Implementació tècnica
Les seccions següents descriuen com Test Engine es basa en la base d'automatització del navegador de Playwright i l'integra amb Power Platform abstraccions específiques, permetent una automatització de proves robusta i mantenible.
Fundació d'automatització del navegador
Test Engine utilitza les capacitats bàsiques de Playwright per a una automatització coherent del navegador:
- Compatibilitat entre navegadors per a Chrome, Firefox i Microsoft Edge
- Mecanismes d'espera fiables que esperen automàticament que els elements estiguin preparats
- Intercepció de sol·licituds de xarxa per simular respostes API
- Eines de rastreig i depuració per diagnosticar errors de proves
Integració arquitectònica de Test Engine
- Capa de proveïdor: la capa de proveïdor del motor de proves interactua directament amb les API de Playwright per controlar el comportament del navegador
- Model d'objectes: en lloc de treballar amb elements DOM en brut, el motor de proves s'assigna a models d'objectes específics de l'aplicació
- Power Fx Capa: els passos de prova escrits s'interpreten Power Fx i s'executen a través de la capa del proveïdor
Característiques tècniques clau
Les seccions següents destaquen les característiques tècniques importants que Test Engine afegeix a Playwright, inclosos els selectors específics de l'aplicació, la gestió del context del navegador i l'accés directe a les funcions de Playwright per a escenaris avançats.
Selectors específics de l'aplicació
El motor de proves utilitza selectors específics de l'aplicació en lloc de selectors o CSS XPath selectors:
# 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();
Gestió del context del navegador
El motor de proves gestiona els contextos del navegador per admetre diversos escenaris d'autenticació:
# Test Engine handles browser context automatically
pac test run `
--provider canvas `
--test-plan-file testplan.te.yaml `
--tenant $tenantId `
--environment-id $environmentId
Funcions directes de dramaturg
Tot i que Test Engine abstrau moltes interaccions de Playwright, hi ha escenaris en què l'accés directe a les capacitats de Playwright pot ser valuós. Test Engine proporciona diverses funcions de vista prèvia que permeten la interacció directa amb Playwright des dels passos Power Fx de prova.
Ús de les funcions de dramaturg al motor de proves
Test Engine inclou les següents funcions de previsualització que us permeten aplicar les capacitats de selecció d'elements de Playwright:
| Function | Descripció | Exemple |
|---|---|---|
| Preview.PlaywrightAction | Executar una acció sobre elements mitjançant CSS selectors o DOM | Preview.PlaywrightAction("//button", "click") Vegeu Operacions d'acció de dramaturgs comuns |
| Vista prèvia.PlaywrightActionValue | Executar una acció que requereixi un paràmetre de valor | Preview.PlaywrightActionValue("//input[@data-id='1']", "fill", "Hello") Vegeu Operacions comunes de valor d'acció de dramaturgs |
| Vista prèvia.PlaywrightScript | Executar un script de C# personalitzat que interactua amb Playwright | Preview.PlaywrightScript("sample.csx") Vegeu Avançat: Guions de dramaturgs personalitzats |
| Vista prèvia.Pausa | Posa en pausa l'execució de la prova i mostra l'inspector de dramaturgs | Preview.Pause() |
Nota
Per utilitzar aquestes funcions de visualització prèvia, heu d'afegir les funcions de visualització prèvia a la llista permesa a la secció de configuració de la prova.
Operacions d'acció habituals de dramaturgs
Les operacions següents es poden realitzar amb Preview.PlaywrightAction:
| Acció | Descripció | Exemple |
|---|---|---|
click |
Selecció d'un element mitjançant l'esdeveniment de clic | Preview.PlaywrightAction("//button[@id='submit']", "click") |
exists |
Comprovar si existeix un element | Preview.PlaywrightAction("//div[@class='error-message']", "exists") |
wait |
Espera que un element estigui disponible | Preview.PlaywrightAction("//table[@data-loading='false']", "wait") |
Operacions comunes de valor d'acció de dramaturg
Les operacions següents es poden realitzar amb Preview.PlaywrightActionValue:
| Acció | Descripció | Exemple |
|---|---|---|
fill |
Omplir un camp de formulari amb text | Preview.PlaywrightActionValue("//input[@name='search']", "fill", "Product name") |
select |
Seleccionar una opció d'una llista de selecció | Preview.PlaywrightActionValue("//select", "select", "Option2") |
setAttribute |
Definir un atribut en un element | Preview.PlaywrightActionValue("//div", "setAttribute", "data-custom='value'") |
Quan s'han d'utilitzar les funcions directes de dramaturg
Tot i que es prefereixen les abstraccions a nivell d'aplicació, les funcions directes de Playwright són útils en aquests escenaris:
- Interaccions complexes de la interfície d'usuari no cobertes per les funcions estàndard del motor de proves
- Components de tercers dins Power Platform d'aplicacions que necessiten un maneig especial
- Depuració d'escenaris de prova complexos on es necessita més control
- Validació avançada d'estats o propietats d'elements
Exemple: Enfocament combinat
En aquest exemple es demostra la combinació d'abstraccions a nivell d'aplicació amb accions directes 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çat: guions de dramaturgs personalitzats
Per a escenaris altament especialitzats, podeu crear guions personalitzats de Playwright:
- Crear un fitxer amb la
.csxlògica personalitzada de Playwright - Referència: Assemblatges de dramaturgs necessaris
- Implementeu l'estructura de classes necessària
- Cridar l'script des dels passos de prova
// 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 només s'implementa per a les compilacions de depuració del motor de proves construïdes des del codi font, no a l'eina publicada pac test run .
Integració amb el procés de desenvolupament
Les seccions següents descriuen com es poden utilitzar Test Engine i Playwright tant en entorns de desenvolupament local com de CI/CD, donant suport a una varietat de fluxos de treball, des de la depuració interactiva fins a l'execució automatitzada de pipelines.
Desenvolupament local
Per al desenvolupament local, Test Engine proporciona un entorn complet:
- Execució del navegador local amb visibilitat de la interfície d'usuari
- Execució de proves pas a pas
- Registres detallats i diagnòstics
Integració CI/CD
En entorns CI/CD, el Test Engine pot executar Playwright en mode sense cap:
# 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)"
Procediments recomanats
Quan treballeu amb la integració de Playwright de Test Engine:
- Centreu-vos en objectes de nivell d'aplicació en lloc d'elements DOM
- Utilitzeu Power Fx funcions per a lògica complexa en lloc de JavaScript en brut
- Aprofiteu els mecanismes d'autenticació integrats
- Reservar funcions directes de dramaturg per a escenaris en què les abstraccions a nivell d'aplicació són insuficients
- Reviseu les proves generades per optimitzar-ne la llegibilitat i el manteniment