Integracija testnega motorja in Playwrighta (zastarela)

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:

  1. Ustvarite datoteko s svojo logiko dramatika po meri .csx
  2. Potrebna referenca za sklope dramatikov
  3. Implementirajte zahtevano strukturo razredov
  4. 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