Deli putem


Test Engine i integracija dramskog pisca (pregled)

Belešku

Funkcije pregleda nisu namenjene za korišćenje u proizvodnji i mogu da imaju ograničene funkcionalnosti. Ove funkcije su dostupne pre zvaničnog objavljivanja kako bi klijenti mogli ranije da im pristupe i pruže povratne informacije.

+Pregled

Power Apps Test Engine koristi Playwright kao svoju osnovnu tehnologiju automatizacije pretraživača. Ova integracija pruža Test Engine-u moćne, pouzdane i mogućnosti testiranja unakrsnog pretraživača, dodajući nekoliko slojeva apstrakcije kako bi se pojednostavilo kreiranje testova za Power Platform aplikacije.

Kako Test Engine poboljšava dramskog pisca

Dok Playwright nudi odlične mogućnosti automatizacije pretraživača, Test Engine proširuje ove mogućnosti posebno za Power Platform:

Test Engine Enhancement Opis
Apstrakcije na nivou aplikacije Test Engine radi sa objektima na nivou aplikacije, a ne sa DOM elementima, čineći testove otpornijim na promene korisničkog interfejsa
Power Fx Integraciju Test Engine dodaje Power Fx podršku, omogućavajući pristup sa niskim kodom za autorstvo testa
Ugrađena autentifikacija Unapred izgrađeni mehanizmi za autentifikaciju i Microsoft Entra scenariji uslovnog pristupa
Dataverse Integraciju Direktna integracija sa Dataverse omogućava sveobuhvatno testiranje od kraja do kraja
Specijalizovani provajderi Optimizovani provajderi za Canvas aplikacije i aplikacije zasnovane na modelu

Tehnička implementacija

Sledeći odeljci opisuju kako Test Engine gradi na Plaiwrightovoj osnovi za automatizaciju pretraživača i integriše ga sa Power Platform specifičnim apstrakcijama, omogućavajući robusnu i održivu automatizaciju testiranja.

Osnova za automatizaciju pretraživača

Test Engine koristi osnovne mogućnosti Dramatičara za konzistentnu automatizaciju pretraživača:

  • Podrška za Chrome, Firefox, i Microsoft Edge
  • Pouzdani mehanizmi čekanja koji automatski čekaju da elementi budu spremni
  • Presretanje mrežnih zahteva za simulaciju API odgovora
  • Alati za praćenje i otklanjanje grešaka za dijagnozu neuspeha testova

Arhitektonska integracija Test Engine-a

  • Sloj provajdera: Sloj provajdera u Test Engine-u interfejsa direktno sa API-jima za dramaturgiju za kontrolu ponašanja pretraživača
  • Object Model: Umesto da radi sa sirovim DOM elementima, Test Engine mapira na objektne modele specifične za aplikaciju
  • Power Fx sloj: Test koraci napisani u Power Fx se tumače i izvršavaju kroz sloj provajdera

Ključne tehničke karakteristike

Sledeći odeljci ističu važne tehničke karakteristike koje Test Engine dodaje na vrh Playwright-a, uključujući selektore specifične za aplikaciju, upravljanje kontekstom pretraživača i direktan pristup funkcijama Playwright za napredne scenarije.

Selektori specifični za aplikaciju

Test Engine koristi selektore specifične za aplikaciju umesto ili selektora CSS XPath :

# 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 pretraživača

Test Engine upravlja kontekstima pretraživača kako bi podržao različite scenarije autentifikacije:

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

Direktne funkcije dramskog pisca

Dok Test Engine apstrahuje mnoge interakcije dramskih pisaca, postoje scenariji u kojima direktan pristup mogućnostima dramskog pisca može biti dragocen. Test Engine pruža nekoliko funkcija pregleda koje omogućavaju direktnu interakciju sa dramskim piscem iz vaših Power Fx testnih koraka.

Korišćenje funkcija dramskog pisca u Test Engine-u

Test Engine uključuje sledeće funkcije pregleda koje vam omogućavaju da primenite mogućnosti izbora elemenata dramaturga:

Function Opis Primer
Preview.PlaywrightAction Izvršite akciju na elementima koristeći CSS ili DOM selektore Preview.PlaywrightAction("//button", "click")
Pogledajte zajedničke akcione operacije dramskog pisca
Preview.PlaywrightActionValue Izvršite akciju koja zahteva parametar vrednosti Preview.PlaywrightActionValue("//input[@data-id='1']", "fill", "Hello")
Pogledajte Common Playwright Action Value Operations
Preview.PlaywrightScript Izvršite prilagođenu C # skriptu koja se povezuje sa dramskim piscem Preview.PlaywrightScript("sample.csx")
Pogledajte Napredno: Prilagođene dramske skripte
Pregled.Pauza Pauzirajte izvršenje testa i prikažite inspektora dramskog pisca Preview.Pause()

Belešku

Da biste koristili ove funkcije pregleda, morate dodati funkcije pregleda na listu dozvoljenih u odeljku podešavanja testa.

Zajedničke akcione operacije dramskog pisca

Sledeće operacije se mogu izvršiti sa Previev.PlaywrightAction:

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

Zajedničke operacije vrednosti akcije dramskog pisca

Sledeće operacije se mogu izvršiti sa Previev.PlaywrightActionValue:

Radnja Opis Primer
fill Popunite polje obrasca sa tekstom Preview.PlaywrightActionValue("//input[@name='search']", "fill", "Product name")
select Izaberite opciju sa liste za izbor Preview.PlaywrightActionValue("//select", "select", "Option2")
setAttribute Podesite atribut na element Preview.PlaywrightActionValue("//div", "setAttribute", "data-custom='value'")

Kada koristiti direktne funkcije dramskog pisca

Dok su apstrakcije na nivou aplikacije poželjne, direktne funkcije dramskog pisca su korisne u ovim scenarijima:

  • Kompleksne interakcije korisničkog interfejsa koje nisu pokrivene standardnim funkcijama Test Engine
  • Komponente nezavisnih proizvođača u Power Platform aplikacijama kojima je potrebno posebno rukovanje
  • Otklanjanje grešaka složenih testnih scenarija u kojima je potrebna veća kontrola
  • Napredna validacija stanja ili svojstava elemenata

Primer : Kombinovani pristup

Ovaj primer pokazuje kombinovanje apstrakcija na nivou aplikacije sa direktnim akcijama dramskog pisca:

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 dramske skripte

Za visoko specijalizovane scenarije, možete kreirati prilagođene dramske skripte:

  1. Kreirajte fajl sa svojom prilagođenom logikom .csx dramskog pisca
  2. Potrebna referenca Sklopovi dramskih pisaca
  3. Implementirati potrebnu strukturu klase
  4. Pozovite skriptu iz vaših 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
    }
}

Belešku

Previev.PlaywrightScript se implementira samo za otklanjanje grešaka verzije Test Engine-a izgrađenog iz izvora, a ne u objavljenom pac test run alatu.

Integracija sa razvojnim procesom

Sledeći odeljci opisuju kako se Test Engine i Playvright mogu koristiti u lokalnom razvoju i CI / CD okruženjima, podržavajući niz tokova posla od interaktivnog otklanjanja grešaka do automatizovanog izvršavanja cevovoda.

Lokalni razvoj

Za lokalni razvoj, Test Engine obezbeđuje kompletno okruženje:

  • Lokalno izvršenje pretraživača sa vidljivošću korisničkog interfejsa
  • Korak po korak izvršenje testa
  • Detaljni evidencije i dijagnostika

CI / CD integracija

U CI / CD okruženjima, Test Engine može da pokrene Playwright u režimu 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)"

Najbolji primeri iz prakse

Kada radite sa integracijom dramskog pisca Test Engine-a:

  • Fokusirajte se na objekte na nivou aplikacije, a ne na DOM elemente
  • Koristite Power Fx funkcije za složenu logiku, a ne sirovi JavaScript
  • Iskoristite ugrađene mehanizme za autentifikaciju
  • Rezervišite direktne funkcije dramskog pisca za scenarije u kojima su apstrakcije na nivou aplikacije nedovoljne
  • Pregledajte generisane testove za optimizaciju za čitljivost i održavanje