Dalintis per


Bandomasis variklio ir dramaturgo integravimas (peržiūra)

Pastaba.

Peržiūros funkcijos nėra skirtos naudoti gamybai ir gali būti apribotas jų funkcionalumas. Šias funkcijas galima naudoti prieš oficialų išleidimą, kad klientai galėtų gauti ankstyvą prieigą ir pateikti atsiliepimų.

Apžvalga

Power Apps "Test Engine" naudoja "Dramawright" kaip pagrindinę naršyklės automatizavimo technologiją. Ši integracija suteikia "Test Engine" galingas, patikimas ir kelių naršyklių testavimo galimybes, tuo pačiu pridedant kelis abstrakcijos sluoksnius, kad būtų supaprastintas programų bandymų kūrimas Power Platform .

Kaip bandomasis variklis pagerina dramaturgą

Nors "Playwright" siūlo puikias naršyklės automatizavimo galimybes, "Test Engine" išplečia šias galimybes specialiai skirtoms Power Platform:

Variklio patobulinimo bandymas Aprašą
Programos lygio abstrakcijos "Test Engine" veikia su programos lygio objektais, o ne su DOM elementais, todėl testai yra atsparesni vartotojo sąsajos pakeitimams
Power Fx Integracija "Test Engine" prideda Power Fx palaikymą, įgalinantį žemo kodo metodą bandymų kūrimui
Integruotas autentifikavimas Iš anksto sukurti autentifikavimo mechanizmai tvarko Microsoft Entra ir sąlyginės prieigos scenarijus
Dataverse Integracija Tiesioginė integracija su Dataverse leidžia atlikti visapusiškus bandymus nuo galo iki galo
Specializuoti paslaugų teikėjai Optimizuoti "Canvas" programų ir modeliu pagrįstų programų teikėjai

Techninis įgyvendinimas

Tolesniuose skyriuose aprašoma, kaip "Test Engine" remiasi "Dramawright" naršyklės automatizavimo pagrindu ir integruoja jį su Power Platform konkrečiomis abstrakcijomis, įgalindamas patikimą ir prižiūrimą bandymų automatizavimą.

Naršyklės automatizavimo pagrindas

"Test Engine" naudoja pagrindines "Playwright" galimybes nuosekliam naršyklės automatizavimui:

  • "Chrome" kelių naršyklių palaikymas Firefoxir Microsoft Edge
  • Patikimi laukimo mechanizmai , kurie automatiškai laukia, kol elementai bus paruošti
  • Tinklo užklausų perėmimas API atsakymams imituoti
  • Atsekimo ir derinimo įrankiai , skirti diagnozuoti bandymų nesėkmes

"Test Engine" architektūrinė integracija

  • Teikėjo lygmuo: teikėjo lygmuo bandomajame variklyje tiesiogiai susieja su dramaturgų API, kad galėtų valdyti naršyklės elgesį
  • Objekto modelis: užuot dirbę su neapdorotais DOM elementais, "Test Engine" susieja su konkrečios programos objektų modeliais
  • Power Fx Sluoksnis: įrašyti bandymo veiksmai Power Fx interpretuojami ir vykdomi per teikėjo sluoksnį

Pagrindinės techninės savybės

Tolesniuose skyriuose pabrėžiamos svarbios techninės funkcijos, kurias "Test Engine" prideda prie "Playwright", įskaitant konkrečios programos parinkiklius, naršyklės konteksto valdymą ir tiesioginę prieigą prie "Playwright" funkcijų išplėstiniams scenarijams.

Konkrečios programos parinkikliai

Bandomasis variklis naudoja konkrečios programos selektorius vietoj CSS selektorių arba XPath selektorius:

# 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();

Naršyklės konteksto valdymas

Test Engine valdo naršyklės kontekstus, kad palaikytų įvairius autentifikavimo scenarijus:

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

Tiesioginės dramaturgo funkcijos

Nors "Test Engine" abstrahuoja daugybę dramaturgų sąveikų, yra scenarijų, kai tiesioginė prieiga prie dramaturgo galimybių gali būti vertinga. "Test Engine" suteikia keletą peržiūros funkcijų, kurios įgalina tiesioginę sąveiką su dramaturgu atliekant Power Fx bandymo veiksmus.

Dramaturgo funkcijų naudojimas bandomajame variklyje

Bandomasis variklis apima šias peržiūros funkcijas, kurios leidžia pritaikyti dramaturgo elementų pasirinkimo galimybes:

Funkcija Aprašą Pavyzdžiui
Peržiūra.DramaturgasVeiksmas Veiksmo su elementais vykdymas naudojant CSS DOM išrinkiklius arba DOM parinkiklius Preview.PlaywrightAction("//button", "click")
Peržiūrėkite įprastas dramaturgo veiksmo operacijas
Preview.DramawrightActionValue Veiksmo, kuriam reikia reikšmės parametro, vykdymas Preview.PlaywrightActionValue("//input[@data-id='1']", "fill", "Hello")
Peržiūrėkite bendras dramaturgo veiksmo vertės operacijas
Peržiūra.DramaturgasScript Vykdykite pasirinktinį C# scenarijų, kuris siejasi su dramaturgu Preview.PlaywrightScript("sample.csx")
Žiūrėti Išplėstiniai: pasirinktiniai dramaturgų scenarijai
Preview.Pauzė Pristabdykite testo vykdymą ir parodykite dramaturgų inspektorių Preview.Pause()

Pastaba.

Norėdami naudoti šias peržiūros funkcijas, turite įtraukti peržiūros funkcijas į leidžiamų sąrašą testavimo nustatymų skiltyje.

Bendros dramaturgo veiksmo operacijos

Su Preview.PlaywrightAction galima atlikti šias operacijas:

Veiksmas Aprašą Pavyzdžiui
click Elemento pasirinkimas naudojant paspaudimo įvykį Preview.PlaywrightAction("//button[@id='submit']", "click")
exists Patikrinkite, ar yra elementas Preview.PlaywrightAction("//div[@class='error-message']", "exists")
wait Palaukite, kol elementas bus pasiekiamas Preview.PlaywrightAction("//table[@data-loading='false']", "wait")

Bendros dramaturgo veiksmo vertės operacijos

Su Preview.PlaywrightActionValue galima atlikti šias operacijas:

Veiksmas Aprašą Pavyzdžiui
fill Formos lauko užpildymas tekstu Preview.PlaywrightActionValue("//input[@name='search']", "fill", "Product name")
select Pasirinkite parinktį iš pasirinkimo sąrašo Preview.PlaywrightActionValue("//select", "select", "Option2")
setAttribute Elemento atributo nustatymas Preview.PlaywrightActionValue("//div", "setAttribute", "data-custom='value'")

Kada naudoti tiesiogines dramaturgo funkcijas

Nors pirmenybė teikiama programos lygio abstrakcijoms, tiesioginės dramaturgo funkcijos yra naudingos šiais atvejais:

  • Sudėtingos vartotojo sąsajos sąveikos , kurių neapima standartinės bandomojo variklio funkcijos
  • Trečiųjų šalių komponentai Power Platform programose, kurioms reikia specialaus tvarkymo
  • Sudėtingų bandymų scenarijų derinimas ten, kur reikia daugiau kontrolės
  • Išplėstinis elementų būsenų arba ypatybių tikrinimas

Pavyzdys: kombinuotas metodas

Šiame pavyzdyje parodytas programos lygio abstrakcijų derinimas su tiesioginiais dramaturgo veiksmais:

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");

Išplėstiniai: pasirinktiniai dramaturgų scenarijai

Labai specializuotiems scenarijams galite sukurti pasirinktinius dramaturgo scenarijus:

  1. Sukurkite failą naudodami pasirinktinę dramaturgo .csx logiką
  2. Reikalinga nuoroda Dramaturgų susirinkimai
  3. Įgyvendinkite reikiamą klasės struktūrą
  4. Iškvieskite scenarijų iš bandomųjų veiksmų
// 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
    }
}

Pastaba.

Preview.PlaywrightScript įdiegtas tik bandomojo variklio derinimo komponavimo versijoms, sukurtoms iš šaltinio, o ne išleistame pac test run įrankyje.

Integracija su kūrimo procesu

Tolesniuose skyriuose aprašoma, kaip "Test Engine" ir "Playwright" gali būti naudojami tiek vietinio kūrimo, tiek CI / CD aplinkose, palaikant įvairias darbo eigas nuo interaktyvaus derinimo iki automatinio vamzdyno vykdymo.

Vietos plėtra

Vietinei plėtrai bandomasis variklis suteikia visą aplinką:

  • Vietinės naršyklės vykdymas su vartotojo sąsajos matomumu
  • Žingsnis po žingsnio testo vykdymas
  • Išsamūs žurnalai ir diagnostika

CI / CD integracija

CI / CD aplinkoje bandomasis variklis gali paleisti dramaturgą režimu be galvos:

# 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)"

Geriausia praktika

Dirbant su "Test Engine" dramaturgo integracija:

  • Sutelkite dėmesį į programos lygio objektus , o ne į DOM elementus
  • Naudokite Power Fx sudėtingos logikos funkcijas , o ne neapdorotą "JavaScript"
  • Pasinaudokite integruotais autentifikavimo mechanizmais
  • Tiesioginio dramaturgo funkcijų rezervavimas scenarijams, kai programos lygio abstrakcijos yra nepakankamos
  • Peržiūrėkite sugeneruotus testus , kad optimizuotumėte skaitomumą ir priežiūrą