Dijeli putem


Integracija testnog mehanizma i dramaturga (pretpregled)

Napomena

Značajke pretpregleda nisu namijenjene u proizvodne svrhe i mogu imati ograničene funkcije. Te su značajke dostupne prije službenog izdavanja da bi se klijentima omogućio prijevremeni pristup i slanje povratnih informacija.

Pretpregled

Power Apps Test Engine koristi Playwright kao svoju osnovnu tehnologiju automatizacije preglednika. Ova integracija pruža Test Engineu moćne, pouzdane mogućnosti testiranja u više preglednika dok dodaje nekoliko slojeva apstrakcije kako bi se pojednostavilo stvaranje testova za Power Platform aplikacije.

Kako Test Engine poboljšava Playwright

Dok Playwright nudi izvrsne mogućnosti automatizacije preglednika, Test Engine proširuje ove mogućnosti posebno za: Power Platform

Poboljšanje testnog motora Opis
Apstrakcije na razini aplikacije Test Engine radi s objektima na razini aplikacije, a ne s elementima DOM-a, čineći testove otpornijima na promjene korisničkog sučelja
Power Fx Integracija Test Engine dodaje Power Fx podršku, omogućujući pristup autorstvu testa s niskim kodom
Ugrađena provjera autentičnosti Unaprijed izgrađeni mehanizmi provjere autentičnosti i scenariji Microsoft Entra uvjetnog pristupa
Dataverse Integracija Izravna integracija omogućuje Dataverse sveobuhvatno testiranje od kraja do kraja
Specijalizirani pružatelji usluga Optimizirani davatelji usluga za aplikacije radnog područja i aplikacije utemeljene na modelu

Tehnička implementacija

Sljedeći odjeljci opisuju kako se Test Engine nadovezuje na Playwrightov temelj za automatizaciju preglednika i integrira ga sa Power Platform specifičnim apstrakcijama, omogućujući robusnu i održivu automatizaciju testiranja.

Temelj za automatizaciju preglednika

Test Engine koristi Playwrightove temeljne mogućnosti za dosljednu automatizaciju preglednika:

  • Podrška za Chrome u Firefox više preglednika i Microsoft Edge
  • Pouzdani mehanizmi čekanja koji automatski čekaju da elementi budu spremni
  • Presretanje mrežnih zahtjeva za simulaciju odgovora API-ja
  • Alati za praćenje i otklanjanje pogrešaka za dijagnosticiranje neuspjeha testa

Arhitektonska integracija Test Enginea

  • Sloj davatelja usluga: Sloj davatelja usluga u Test Engineu sučeljava se izravno s Playwright API-jima za kontrolu ponašanja preglednika
  • Objektni model: Umjesto rada s neobrađenim DOM elementima, Test Engine se mapira na objektne modele specifične za aplikaciju
  • Power Fx Sloj: Testni koraci napisani u interpretiraju Power Fx se i izvršavaju kroz sloj davatelja usluga

Ključne tehničke značajke

Sljedeći odjeljci ističu važne tehničke značajke koje Test Engine dodaje povrh Playwrighta, uključujući selektore specifične za aplikaciju, upravljanje kontekstom preglednika i izravan pristup Playwright funkcijama za napredne scenarije.

Birači specifični za aplikaciju

Test Engine koristi birače specifične za aplikaciju CSS umjesto birača ili XPath birača:

# 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 kontekstom preglednika

Test Engine upravlja kontekstima preglednika kako bi podržao različite scenarije provjere autentičnosti:

# Test Engine handles browser context automatically
pac test run `
   --provider canvas `
   --test-plan-file testplan.te.yaml `
   --tenant $tenantId `
   --environment-id $environmentId

Funkcije izravnog dramatičara

Iako Test Engine apstrahira mnoge interakcije s dramaturgima, postoje scenariji u kojima izravan pristup mogućnostima dramatičara može biti vrijedan. Test Engine pruža nekoliko funkcija pregleda koje omogućuju izravnu interakciju s Playwrightom iz vaših Power Fx testnih koraka.

Korištenje funkcija dramaturga u Test Engineu

Test Engine uključuje sljedeće funkcije pregleda koje vam omogućuju primjenu Playwrightovih mogućnosti odabira elemenata:

Function Opis Primjer
Pregled.PlaywrightAction Izvršavanje radnje na elementima pomoću CSS birača DOM-a Preview.PlaywrightAction("//button", "click")
Pogledajte uobičajene radnje dramatičara
Preview.PlaywrightActionValue Izvršavanje radnje za koju je potreban parametar vrijednosti Preview.PlaywrightActionValue("//input[@data-id='1']", "fill", "Hello")
Pogledajte uobičajene operacije vrijednosti akcije dramatičara
Preview.PlaywrightScript Izvršite prilagođenu C# skriptu koja se povezuje s Playwrightom Preview.PlaywrightScript("sample.csx")
Pogledajte Napredno: Prilagođene skripte za dramaturge
Pregled.Pauza Pauziranje izvođenja testa i prikaz Inspektora dramatičara Preview.Pause()

Napomena

Da biste koristili ove funkcije pretpregleda, morate dodati funkcije pretpregleda na popis dopuštenih u odjeljku postavki testa.

Uobičajene akcijske operacije dramatičara

Sljedeće operacije mogu se izvesti s Preview.PlaywrightAction:

Radnja Opis Primjer
click Odabir elementa pomoću događaja klika Preview.PlaywrightAction("//button[@id='submit']", "click")
exists Provjerite postoji li element Preview.PlaywrightAction("//div[@class='error-message']", "exists")
wait Pričekajte da element bude dostupan Preview.PlaywrightAction("//table[@data-loading='false']", "wait")

Uobičajene operacije vrijednosti akcije dramatičara

Sljedeće operacije mogu se izvesti s Preview.PlaywrightActionValue:

Radnja Opis Primjer
fill Ispunjavanje polja obrasca tekstom Preview.PlaywrightActionValue("//input[@name='search']", "fill", "Product name")
select Odabir opcije s popisa za odabir Preview.PlaywrightActionValue("//select", "select", "Option2")
setAttribute Postavljanje atributa na element Preview.PlaywrightActionValue("//div", "setAttribute", "data-custom='value'")

Kada koristiti funkcije izravnog dramatičara

Iako se preferiraju apstrakcije na razini aplikacije, izravne funkcije Playwrighta korisne su u sljedećim scenarijima:

  • Složene interakcije korisničkog sučelja koje nisu obuhvaćene standardnim funkcijama testnog modula
  • Komponente trećih strana u Power Platform aplikacijama kojima je potrebno posebno rukovanje
  • Otklanjanje pogrešaka u složenim testnim scenarijima u kojima je potrebna veća kontrola
  • Napredna provjera valjanosti stanja ili svojstava elemenata

Primjer: kombinirani pristup

Ovaj primjer pokazuje kombiniranje apstrakcija na razini aplikacije s izravnim radnjama Playwrighta:

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: prilagođene skripte za dramaturge

Za visoko specijalizirane scenarije možete izraditi prilagođene skripte za dramaturge:

  1. Stvaranje datoteke s prilagođenom logikom .csx Playwright
  2. Potrebna referenca Sklopovi dramatičara
  3. Implementirajte potrebnu strukturu klase
  4. Pozivanje skripte iz testnih koraka
// 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
    }
}

Napomena

Preview.PlaywrightScript implementiran je samo za međuverzije za otklanjanje pogrešaka testnog modula izgrađenog iz izvora, a ne u izdanom pac test run alatu.

Integracija s razvojnim procesom

Sljedeći odjeljci opisuju kako se Test Engine i Playwright mogu koristiti u lokalnom razvoju i CI/CD okruženjima, podržavajući niz tijekova rada od interaktivnog otklanjanja pogrešaka do automatiziranog izvršavanja cjevovoda.

Lokalni razvoj

Za lokalni razvoj, Test Engine pruža cjelovito okruženje:

  • Lokalno izvršavanje preglednika s vidljivošću korisničkog sučelja
  • Izvođenje testa korak po korak
  • Detaljni zapisi i dijagnostika

CI/CD integracija

U CI/CD okruženjima, Test Engine može pokrenuti Playwright u načinu rada bez 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)"

Najbolje prakse

Kada radite s integracijom dramatičara Test Enginea:

  • Usredotočite se na objekte na razini aplikacije, a ne na DOM elemente
  • Koristite Power Fx funkcije za složenu logiku, a ne sirovi JavaScript
  • Iskoristite prednosti ugrađenih mehanizama provjere autentičnosti
  • Rezervirajte izravne funkcije dramaturga za scenarije u kojima apstrakcije na razini aplikacije nisu dovoljne
  • Pregledajte generirane testove kako biste optimizirali čitljivost i održavanje