opomba,
Dostop do te strani zahteva pooblastilo. Poskusite se vpisati alispremeniti imenike.
Dostop do te strani zahteva pooblastilo. Poskusite lahko spremeniti imenike.
opomba,
Test Engine je zastarel in bo odstranjen v prihodnji izdaji. Uporabite Power Platform Playwright vzorce za zmogljivosti avtomatizacije testiranja v Power Platform in Dynamics 365 storitvah.
Pregled
Power Apps Test Engine uporablja Playwright kot svojo osnovno tehnologijo za avtomatizacijo brskalnikov. Ta integracija Test Engineu zagotavlja zmogljive, zanesljive in medbrskalnikovske zmogljivosti testiranja, hkrati pa dodaja več plasti abstrakcije za poenostavitev ustvarjanja testov za aplikacije. Power Platform
Kako Test Engine izboljša Playwriter
Čeprav Playwrit ponuja odlične zmogljivosti avtomatizacije brskalnika, Test Engine te zmogljivosti razširja posebej za Power Platform:
| Izboljšava testnega mehanizma | Description |
|---|---|
| Abstrakcije na ravni aplikacije | Testni mehanizem deluje z objekti na ravni aplikacije in ne z elementi DOM, zaradi česar so testi bolj odporni na spremembe uporabniškega vmesnika. |
| Power Fx Integracija | Test Engine dodaja podporo, ki omogoča pristop z nizko kodo pri ustvarjanju testov Power Fx |
| Vgrajeno preverjanje pristnosti | Predpripravljeni mehanizmi za avtentikacijo obravnavajo scenarije Microsoft Entra in pogojnega dostopa |
| Dataverse Integracija | Neposredna integracija z Dataverse omogoča celovito testiranje od začetka do konca |
| Specializirani ponudniki | Optimizirani ponudniki za aplikacije platna in aplikacije, ki jih poganja model... |
Tehnična izvedba
V naslednjih razdelkih je opisano, kako Test Engine gradi na osnovi avtomatizacije brskalnika Playwright in jo integrira z abstrakcijami, specifičnimi za določene brskalnike, kar omogoča robustno in vzdržno avtomatizacijo testiranja. Power Platform
Temelj za avtomatizacijo brskalnikov
Test Engine uporablja osnovne zmogljivosti programa Playwright za dosledno avtomatizacijo brskalnika:
- Podpora med brskalniki za Chrome, Firefox in Microsoft Edge
- Zanesljivi mehanizmi čakanja, ki samodejno čakajo, da so elementi pripravljeni
- Prestrezanje omrežnih zahtev za simulacijo odgovorov API-ja
- Orodja za sledenje in odpravljanje napak za diagnosticiranje napak pri testiranju
Arhitekturna integracija testnega mehanizma
- Ponudnikov sloj: Ponudnikov sloj v Test Engine se neposredno povezuje z API-ji Playwright za nadzor delovanja brskalnika.
- Objektni model: Namesto dela s surovimi elementi DOM se Test Engine preslika v objektne modele, specifične za aplikacijo
- Power Fx Plast: Koraki testiranja, zapisani v Power Fx , se interpretirajo in izvajajo prek plasti ponudnika
Ključne tehnične lastnosti
Naslednji razdelki poudarjajo pomembne tehnične funkcije, ki jih Test Engine dodaja Playwrightu, vključno z izbirniki, specifičnimi za aplikacije, upravljanjem konteksta brskalnika in neposrednim dostopom do funkcij Playwrighta za napredne scenarije.
Izbirniki, specifični za aplikacijo
Testni mehanizem namesto izbirnikov CSS ali XPath uporablja izbirnike, specifične za aplikacijo:
# 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();
Upravljanje konteksta brskalnika
Testni mehanizem upravlja kontekste brskalnika za podporo različnim scenarijem preverjanja pristnosti:
# Test Engine handles browser context automatically
pac test run `
--provider canvas `
--test-plan-file testplan.te.yaml `
--tenant $tenantId `
--environment-id $environmentId
Neposredne funkcije dramatika
Čeprav Test Engine abstrahira številne interakcije s programom Playwriter, obstajajo scenariji, v katerih je lahko neposreden dostop do zmogljivosti programa Playwriter dragocen. Test Engine ponuja več funkcij predogleda, ki omogočajo neposredno interakcijo s Playwrightom znotraj vaših korakov testiranja. Power Fx
Uporaba funkcij Playwriter v Test Engine
Test Engine vključuje naslednje funkcije predogleda, ki vam omogočajo uporabo Playwrightovih zmogljivosti izbire elementov:
| Function | Description | Primer |
|---|---|---|
| Predogled.DramatikAkcija | Izvedite dejanje na elementih z uporabo izbirnikov CSS ali DOM | Preview.PlaywrightAction("//button", "click") Glejte Pogoste operacije dramatikov |
| Predogled.VrednostAkcijeDramatika | Izvedite dejanje, ki zahteva vrednost parametra | Preview.PlaywrightActionValue("//input[@data-id='1']", "fill", "Hello") Glejte Pogoste operacije z vrednostjo dejanj dramatika |
| Predogled.SkriptaDramatika | Izvedite skript C# po meri, ki se povezuje s programom Playwright | Preview.PlaywrightScript("sample.csx") Glejte Napredno: Scenariji dramatikov po meri |
| Predogled.Začasna ustavitev | Začasno ustavi izvajanje testa in prikaži inšpektorja dramatika | Preview.Pause() |
opomba,
Če želite uporabljati te funkcije predogleda, jih morate dodati na seznam dovoljenih funkcij v razdelku z nastavitvami testiranja.
Pogoste operacije dejanj dramatika
Z Preview.PlaywrightAction je mogoče izvesti naslednje operacije:
| Dejanje | Description | Primer |
|---|---|---|
click |
Izbira elementa z uporabo dogodka klika | Preview.PlaywrightAction("//button[@id='submit']", "click") |
exists |
Preveri, ali element obstaja | Preview.PlaywrightAction("//div[@class='error-message']", "exists") |
wait |
Počakajte, da bo element na voljo | Preview.PlaywrightAction("//table[@data-loading='false']", "wait") |
Pogoste operacije z vrednostjo dejanj dramatika
Z Preview.PlaywrightActionValue je mogoče izvesti naslednje operacije:
| Dejanje | Description | Primer |
|---|---|---|
fill |
Izpolnite polje obrazca z besedilom | Preview.PlaywrightActionValue("//input[@name='search']", "fill", "Product name") |
select |
Izberite možnost s seznama izbire | Preview.PlaywrightActionValue("//select", "select", "Option2") |
setAttribute |
Nastavitev atributa elementu | Preview.PlaywrightActionValue("//div", "setAttribute", "data-custom='value'") |
Kdaj uporabiti neposredne funkcije programa Playwriter
Čeprav so abstrakcije na ravni aplikacije bolj zaželene, so neposredne funkcije Playwright uporabne v teh scenarijih:
- Kompleksne interakcije uporabniškega vmesnika, ki jih standardne funkcije testnega mehanizma ne pokrivajo
- Komponente tretjih oseb v Power Platform aplikacijah, ki zahtevajo posebno ravnanje
- Odpravljanje napak v kompleksnih testnih scenarijih, kjer je potreben večji nadzor
- Napredno preverjanje stanj ali lastnosti elementov
Primer: Kombinirani pristop
Ta primer prikazuje kombiniranje abstrakcij na ravni aplikacije z neposrednimi dejanji programa 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");
Napredno: Scenariji za dramatike po meri
Za zelo specializirane scenarije lahko ustvarite scenarije po meri za dramatika:
- Ustvarite datoteko s svojo logiko dramatika po meri
.csx - Potrebna referenca za sklope dramatikov
- Implementirajte zahtevano strukturo razredov
- Pokličite skript iz korakov testa
// 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
}
}
opomba,
Preview.PlaywrightScript je implementiran samo za razhroščevalne različice Test Engine, zgrajene iz izvorne kode, ne pa v izdanem orodju pac test run .
Integracija z razvojnim procesom
V naslednjih razdelkih je opisano, kako se Test Engine in Playwright lahko uporabljata tako v lokalnem razvoju kot v okoljih CI/CD, pri čemer podpirata vrsto delovnih procesov, od interaktivnega odpravljanja napak do avtomatiziranega izvajanja cevovoda.
Lokalni razvoj
Za lokalni razvoj Test Engine zagotavlja celovito okolje:
- Lokalno izvajanje v brskalniku z vidnostjo uporabniškega vmesnika
- Izvajanje testa po korakih
- Podrobni dnevniki in diagnostika
Integracija CI/CD
V okoljih CI/CD lahko Test Engine zažene Playwriter v načinu brez glave:
# 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)"
Najboljši postopki
Pri delu z integracijo Playwright programa Test Engine:
- Osredotočite se na objekte na ravni aplikacije in ne na elemente DOM
- Za kompleksno logiko uporabite funkcije namesto surovega JavaScripta Power Fx
- Izkoristite vgrajene mehanizme za preverjanje pristnosti
- Neposredne funkcije programa Playwriter rezervirajte za scenarije, kjer abstrakcije na ravni aplikacije niso zadostne
- Preglejte ustvarjene teste za optimizacijo berljivosti in vzdrževanja