Kopīgot, izmantojot


Testa programmas un dramaturgu integrācija (priekšskatījums)

Piezīmes

Priekšskatījuma līdzekļi nav paredzēti komerciālai lietošanai, un to funkcionalitāte var būt ierobežota. Šie līdzekļi ir pieejami pirms oficiālā laidiena, lai klienti varētu priekšlaikus piekļūt līdzeklim un sniegt atsauksmes.

Pārskats

Power Apps Test Engine izmanto Playwright kā galveno pārlūkprogrammas automatizācijas tehnoloģiju. Šī integrācija nodrošina Test Engine jaudīgas, uzticamas un vairāku pārlūkprogrammu testēšanas iespējas, vienlaikus pievienojot vairākus abstrakcijas slāņus, lai vienkāršotu lietojumprogrammu Power Platform testa izveidi.

Kā testa dzinējs uzlabo dramaturgu

Lai gan Playwright piedāvā lieliskas pārlūkprogrammas automatizācijas iespējas, Test Engine paplašina šīs iespējas īpaši Power Platform:

Testa dzinēja uzlabošana Apraksts
Lietojumprogrammas līmeņa abstrakcijas Testa programma darbojas ar lietotnes līmeņa objektiem, nevis DOM elementiem, padarot testus noturīgākus pret lietotāja interfeisa izmaiņām
Power Fx Integrācija Testēšanas programma pievieno Power Fx atbalstu, iespējojot zema koda pieeju testa autorēšanai
Iebūvēta autentifikācija Iepriekš iebūvēti autentifikācijas mehānismu apstrādes Microsoft Entra un nosacījumpiekļuves scenāriji
Dataverse Integrācija Tieša integrācija ar Dataverse ļauj veikt visaptverošu testēšanu
Specializētie pakalpojumu sniedzēji Optimizēti pakalpojumu sniedzēji Canvas programmām un modeļa vadītām programmām

Tehniskā ieviešana

Nākamajās sadaļās aprakstīts, kā Test Engine balstās uz Playwright pārlūkprogrammas automatizācijas pamatu un integrē to ar Power Platform specifiskām abstrakcijām, nodrošinot stabilu un uzturamu testa automatizāciju.

Pārlūkprogrammas automatizācijas pamats

Test Engine izmanto Playwright galvenās iespējas konsekventai pārlūkprogrammas automatizācijai:

  • Vairāku pārlūkprogrammu atbalsts pārlūkprogrammai Chrome Firefox un Microsoft Edge
  • Uzticami gaidīšanas mehānismi , kas automātiski gaida, līdz elementi ir gatavi
  • Tīkla pieprasījumu pārtveršana API atbilžu simulēšanai
  • Izsekošanas un atkļūdošanas rīki testa kļūmju diagnosticēšanai

Test Engine arhitektūras integrācija

  • Pakalpojumu sniedzēja slānis: testa programmas nodrošinātāja slānis saskaras tieši ar Playwright API, lai kontrolētu pārlūkprogrammas darbību
  • Objekta modelis: tā vietā, lai strādātu ar neapstrādātiem DOM elementiem, Testa programma kartē lietojumprogrammai specifiskus objektu modeļus
  • Power Fx Slānis: testa soļi, kas ierakstīti Power Fx , tiek interpretēti un izpildīti, izmantojot pakalpojumu sniedzēja slāni.

Galvenās tehniskās iezīmes

Nākamajās sadaļās ir uzsvērtas svarīgas tehniskās funkcijas, ko Test Engine pievieno papildus Playwright, tostarp lietotnēm specifiski atlasītāji, pārlūkprogrammas konteksta pārvaldība un tieša piekļuve Playwright funkcijām uzlabotiem scenārijiem.

Lietojumprogrammu selektori

Testēšanas programma izmanto lietojumprogrammai specifiskus selektorus, nevis CSS selektorus 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();

Pārlūkprogrammas konteksta pārvaldība

Testa programma pārvalda pārlūkprogrammas kontekstus, lai atbalstītu dažādus autentifikācijas scenārijus:

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

Tiešās dramaturgu funkcijas

Lai gan Test Engine abstrahē daudzas dramaturgu mijiedarbības, ir scenāriji, kuros tieša piekļuve dramaturga iespējām var būt vērtīga. Test Engine nodrošina vairākas priekšskatījuma funkcijas, kas nodrošina tiešu mijiedarbību ar Playwright no jūsu Power Fx testa soļiem.

Dramaturgu funkciju izmantošana testa programmā

Test Engine ietver šādas priekšskatījuma funkcijas, kas ļauj lietot Playwright elementu atlases iespējas:

Function Apraksts Piemērs
Priekšskatījums.Dramaturgsdarbība Darbības izpilde ar elementiem, izmantojot CSS vai DOM atlasītājus Preview.PlaywrightAction("//button", "click")
Skatīt Kopējās dramaturgu darbības operācijas
Preview.PlaywrightActionValue Izpildīt darbību, kurai nepieciešams vērtības parametrs Preview.PlaywrightActionValue("//input[@data-id='1']", "fill", "Hello")
Skatīt Kopējās dramaturgu darbības vērtības operācijas
Priekšskatījums.DramaturgsScenārijs Izpildīt pielāgotu C# skriptu, kas saskaras ar Playwright Preview.PlaywrightScript("sample.csx")
Skatīt Advanced: Pielāgoti dramaturgu scenāriji
Priekšskatījums.Pauze Apturēt testa izpildi un parādīt dramaturgu inspektoru Preview.Pause()

Piezīmes

Lai izmantotu šīs priekšskatījuma funkcijas, priekšskatījuma funkcijas ir jāpievieno atļautajam sarakstam testa iestatījumu sadaļā.

Kopīgas dramaturgu darbības operācijas

Izmantojot Preview.PlaywrightAction, var veikt šādas darbības:

Darbība Apraksts Piemērs
click Elementa atlase, izmantojot klikšķa notikumu Preview.PlaywrightAction("//button[@id='submit']", "click")
exists Pārbaudiet, vai elements pastāv Preview.PlaywrightAction("//div[@class='error-message']", "exists")
wait Pagaidiet, līdz elements ir pieejams Preview.PlaywrightAction("//table[@data-loading='false']", "wait")

Kopīgas dramaturgu darbības vērtības operācijas

Izmantojot Preview.PlaywrightActionValue, var veikt šādas darbības:

Darbība Apraksts Piemērs
fill Veidlapas lauka aizpildīšana ar tekstu Preview.PlaywrightActionValue("//input[@name='search']", "fill", "Product name")
select Opcijas atlase atlases sarakstā Preview.PlaywrightActionValue("//select", "select", "Option2")
setAttribute Atribūta iestatīšana elementam Preview.PlaywrightActionValue("//div", "setAttribute", "data-custom='value'")

Kad izmantot tiešās dramaturgu funkcijas

Lai gan priekšroka tiek dota lietotnes līmeņa abstrakcijām, tiešās dramaturgu funkcijas ir noderīgas šādos scenārijos:

  • Sarežģīta lietotāja interfeisa mijiedarbība, uz kuru neattiecas standarta testa programmas funkcijas
  • Trešo pušu komponenti lietojumprogrammās Power Platform , kurām nepieciešama īpaša apstrāde
  • Sarežģītu testēšanas scenāriju atkļūdošana, kuros nepieciešama lielāka kontrole
  • Elementu stāvokļu vai rekvizītu papildu validācija

Piemērs: kombinētā pieeja

Šajā piemērā parādīta lietotnes līmeņa abstrakciju apvienošana ar tiešām dramaturgu darbībām:

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

Papildināts: pielāgoti dramaturgu scenāriji

Ļoti specializētiem scenārijiem varat izveidot pielāgotus dramaturgu skriptus:

  1. Izveidojiet failu .csx ar savu pielāgoto dramaturgu loģiku
  2. Nepieciešama atsauce Dramaturgu montāžas
  3. Nepieciešamās klases struktūras ieviešana
  4. Skripta izsaukums no testa darbībām
// 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
    }
}

Piezīmes

Preview.PlaywrightScript tiek ieviests tikai testa programmas atkļūdošanas būvējumiem, kas veidoti no avota, nevis izlaistajā pac test run rīkā.

Integrācija ar izstrādes procesu

Nākamajās sadaļās aprakstīts, kā Test Engine un Playwright var izmantot gan vietējā, gan CI/CD vidē, atbalstot dažādas darbplūsmas, sākot no interaktīvas atkļūdošanas līdz automatizētai cauruļvada izpildei.

Vietējā attīstība

Vietējai attīstībai Test Engine nodrošina pilnīgu vidi:

  • Vietējās pārlūkprogrammas izpilde ar lietotāja interfeisa redzamību
  • Pakāpeniska testa izpilde
  • Detalizēti žurnāli un diagnostika

CI/CD integrācija

CI/CD vidēs Test Engine var darbināt Playwright bezgalvas režīmā:

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

Paraugprakse

Strādājot ar Test Engine Playwright integrāciju:

  • Koncentrējieties uz programmas līmeņa objektiem , nevis DOM elementiem
  • Funkciju Power Fx izmantošana sarežģītai loģikai, nevis neapstrādātam JavaScript
  • Izmantojiet iebūvētos autentifikācijas mehānismus
  • Rezervējiet tiešās dramaturgu funkcijas scenārijiem, kuros lietotnes līmeņa abstrakcijas ir nepietiekamas
  • Pārskatiet ģenerētos testus , lai optimizētu lasāmību un uzturēšanu