Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Notat
Forhåndsversjonsfunksjonene er ikke ment for produksjonsbruk og kan ha begrenset funksjonalitet. Disse funksjonene er tilgjengelige før en offisiell utgivelse, slik at kunder kan få tidlig tilgang og gi tilbakemeldinger.
Oversikt
Power Apps Test Engine bruker Playwright som sin kjerneteknologi for nettleserautomatisering. Denne integrasjonen gir Test Engine kraftige, pålitelige og testfunksjoner på tvers av nettlesere, samtidig som den legger til flere lag med abstraksjon for å forenkle testoppretting for Power Platform applikasjoner.
Hvordan Test Engine forbedrer Playwright
Mens Playwright tilbyr utmerkede nettleserautomatiseringsfunksjoner, utvider Test Engine disse funksjonene spesielt for Power Platform:
| Forbedring av testmotor | Description |
|---|---|
| Abstraksjoner på appnivå | Testmotoren fungerer med objekter på appnivå i stedet for DOM-elementer, noe som gjør tester mer motstandsdyktige mot endringer i brukergrensesnittet |
| Power Fx Integrasjon | Test Engine legger til Power Fx støtte, noe som muliggjør en lavkodebasert tilnærming til testredigering |
| Innebygd autentisering | Forhåndsbygde godkjenningsmekanismer håndterer Microsoft Entra og scenarioer for betinget tilgang |
| Dataverse Integrasjon | Direkte integrasjon med Dataverse muliggjør omfattende ende-til-ende-testing |
| Spesialiserte leverandører | Optimaliserte leverandører for lerretsapper og modelldrevne apper |
Teknisk gjennomføring
De følgende avsnittene beskriver hvordan Test Engine bygger på Playwrights nettleserautomatiseringsgrunnlag og integrerer det med Power Platform spesifikke abstraksjoner, noe som muliggjør robust og vedlikeholdbar testautomatisering.
Grunnlag for nettleserautomatisering
Test Engine bruker Playwrights kjernefunksjoner for konsekvent nettleserautomatisering:
- Støtte for Chrome på tvers av nettlesere, Firefox og Microsoft Edge
- Pålitelige ventemekanismer som automatisk venter på at elementene skal være klare
- Avskjæring av nettverksforespørsler for simulering av API-svar
- Sporings- og feilsøkingsverktøy for å diagnostisere testfeil
Test Engines arkitektoniske integrasjon
- Leverandørlag: Leverandørlaget i testmotoren grensesnitt direkte med Playwrights API-er for å kontrollere nettleseratferd
- Objektmodell: I stedet for å jobbe med rå DOM-elementer, tilordnes testmotoren til applikasjonsspesifikke objektmodeller
- Power Fx Lag: Testtrinn som er skrevet inn Power Fx , tolkes og utføres gjennom leverandørlaget
Viktige tekniske funksjoner
De følgende avsnittene fremhever viktige tekniske funksjoner som Test Engine legger til på toppen av Playwright, inkludert appspesifikke velgere, nettleserkontekstadministrasjon og direkte tilgang til Playwright-funksjoner for avanserte scenarier.
App-spesifikke velgere
Test Engine bruker appspesifikke velgere i stedet for CSS eller XPath velgere:
# 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();
Administrasjon av nettleserkontekst
Test Engine administrerer nettleserkontekster for å støtte ulike godkjenningsscenarioer:
# Test Engine handles browser context automatically
pac test run `
--provider canvas `
--test-plan-file testplan.te.yaml `
--tenant $tenantId `
--environment-id $environmentId
Direkte dramatiker-funksjoner
Mens Test Engine abstraherer mange Playwright-interaksjoner, er det scenarier der direkte tilgang til Playwright-funksjoner kan være verdifulle. Test Engine har flere forhåndsvisningsfunksjoner som muliggjør direkte interaksjon med Playwright fra testtrinnene dine Power Fx .
Bruke Playwright-funksjoner i Test Engine
Test Engine inkluderer følgende forhåndsvisningsfunksjoner som lar deg bruke Playwrights elementvalgfunksjoner:
| Function | Description | Eksempel |
|---|---|---|
| Forhåndsvisning.DramatikerHandling | Utføre en handling på elementer ved hjelp av CSS eller DOM-velgere | Preview.PlaywrightAction("//button", "click") Se vanlige actionoperasjoner for dramatikere |
| Forhåndsvisning.PlaywrightActionValue | Utføre en handling som krever en verdiparameter | Preview.PlaywrightActionValue("//input[@data-id='1']", "fill", "Hello") Se vanlige handlinger for dramatikerhandlinger |
| Forhåndsvisning.PlaywrightScript | Kjør et egendefinert C#-skript som grensesnitt med Playwright | Preview.PlaywrightScript("sample.csx") Se Avansert: Tilpassede dramatikerskript |
| Forhåndsvisning.Pause | Sett testutførelsen på pause og vis Dramatikerinspektør | Preview.Pause() |
Notat
Hvis du vil bruke disse forhåndsvisningsfunksjonene, må du legge til forhåndsvisningsfunksjonene i den tillatte listen i delen for testinnstillinger.
Vanlige actionoperasjoner for dramatikere
Følgende operasjoner kan utføres med Preview.PlaywrightAction:
| Handling | Description | Eksempel |
|---|---|---|
click |
Valg av et element ved hjelp av klikkhendelse | Preview.PlaywrightAction("//button[@id='submit']", "click") |
exists |
Sjekk om det finnes et element | Preview.PlaywrightAction("//div[@class='error-message']", "exists") |
wait |
Vent til et element er tilgjengelig | Preview.PlaywrightAction("//table[@data-loading='false']", "wait") |
Vanlige handlingsverdioperasjoner for dramatikere
Følgende operasjoner kan utføres med Preview.PlaywrightActionValue:
| Handling | Description | Eksempel |
|---|---|---|
fill |
Fylle et skjemafelt med tekst | Preview.PlaywrightActionValue("//input[@name='search']", "fill", "Product name") |
select |
Velg et alternativ fra en valgliste | Preview.PlaywrightActionValue("//select", "select", "Option2") |
setAttribute |
Angi et attributt for et element | Preview.PlaywrightActionValue("//div", "setAttribute", "data-custom='value'") |
Når skal du bruke direkte Playwright-funksjoner
Selv om abstraksjoner på appnivå foretrekkes, er direkte Playwright-funksjoner nyttige i disse scenariene:
- Komplekse grensesnittinteraksjoner som ikke dekkes av standard testmotorfunksjoner
- Tredjepartskomponenter i Power Platform applikasjoner som trenger spesiell håndtering
- Feilsøking av komplekse testscenarier der det er behov for mer kontroll
- Avansert validering av elementtilstander eller egenskaper
Eksempel: Kombinert tilnærming
Dette eksemplet viser hvordan du kombinerer abstraksjoner på appnivå med direkte Playwright-handlinger:
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");
Avansert: Tilpassede dramatikerskript
For svært spesialiserte scenarioer kan du opprette egendefinerte Playwright-skript:
- Opprett en
.csxfil med din tilpassede Playwright-logikk - Referer til nødvendige dramatikersamlinger
- Implementer den nødvendige klassestrukturen
- Kall opp skriptet fra testtrinnene
// 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
}
}
Notat
Preview.PlaywrightScript er bare implementert for feilsøkingsbygg av testmotor som er bygd fra kilden, ikke i det utgitte pac test run verktøyet.
Integrasjon med utviklingsprosess
Avsnittene nedenfor beskriver hvordan testmotor og Playwright kan brukes i både lokale utviklings- og CI/CD-miljøer, og støtter en rekke arbeidsflyter fra interaktiv feilsøking til automatisert pipelinekjøring.
Lokal utvikling
For lokal utvikling gir Test Engine et komplett miljø:
- Lokal nettleserkjøring med UI-synlighet
- Trinn-for-trinn testutførelse
- Detaljerte logger og diagnostikk
CI/CD-integrasjon
I CI/CD-miljøer kan Test Engine kjøre Playwright i hodeløs modus:
# 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)"
Beste fremgangsmåter
Når du arbeider med Test Engines Playwright-integrasjon:
- Fokuser på objekter på appnivå i stedet for DOM-elementer
- Bruk Power Fx funksjoner for kompleks logikk i stedet for rå JavaScript
- Dra nytte av innebygde autentiseringsmekanismer
- Reserver direkte Playwright-funksjoner for scenarioer der abstraksjoner på appnivå er utilstrekkelige
- Gjennomgå genererte tester for å optimalisere for lesbarhet og vedlikehold