Jagamisviis:


Test Engine’i ja näitekirjaniku integreerimine (eelvaade)

Märkus.

Eelvaatefunktsioonid ei ole mõeldud kasutamiseks tootmises ja nende funktsioonid võivad olla piiratud. Need funktsioonid on saadaval enne ametlikku väljastamist, et kliendid saaksid sellele varakult juurdepääsu ja võiksid tagasisidet anda.

Ülevaade

Power Apps Test Engine kasutab Playwrighti oma brauseri automatiseerimise põhitehnoloogiana. See integratsioon annab Test Engine’ile võimsad, usaldusväärsed ja brauseriülesed testimisvõimalused, lisades samal ajal mitu abstraktsioonikihti, et lihtsustada rakenduste testide loomist Power Platform .

Kuidas Test Engine täiustab näitekirjanikku

Kuigi Playwright pakub suurepäraseid brauseri automatiseerimise võimalusi, laiendab Test Engine neid võimalusi konkreetselt Power Platform:

Testimootori täiustamine Kirjeldus
Rakenduse tasemel abstraktsioonid Test Engine töötab pigem rakendusetaseme objektidega kui DOM-elementidega, muutes testid kasutajaliidese muudatuste suhtes vastupidavamaks
Power Fx Integratsioon Test Engine lisab Power Fx toe, võimaldades testide koostamisel vähese koodiga lähenemist
Sisseehitatud autentimine Eelehitatud autentimismehhanismide käsitsemise Microsoft Entra ja tingimusjuurdepääsu stsenaariumid
Dataverse Integratsioon Otsene integreerimine Dataverse võimaldab põhjalikku täielikku testimist
Spetsialiseeritud pakkujad Lõuendirakenduste ja mudelipõhiste rakenduste jaoks optimeeritud pakkujad

Tehniline rakendamine

Järgmistes jaotistes kirjeldatakse, kuidas Test Engine tugineb Playwrighti brauseri automatiseerimise alusele ja integreerib selle Power Platform konkreetsete abstraktsioonidega, võimaldades tugevat ja hooldatavat testide automatiseerimist.

Brauseri automatiseerimise alus

Test Engine kasutab Playwrighti põhivõimalusi brauseri järjepidevaks automatiseerimiseks:

  • Chrome’i brauseriülene tugi Firefoxja Microsoft Edge
  • Usaldusväärsed ootemehhanismid , mis ootavad automaatselt elementide valmimist
  • Võrgupäringute pealtkuulamine API vastuste simuleerimiseks
  • Jälgimis- ja silumistööriistad testi tõrgete diagnoosimiseks

Test Engine’i arhitektuurne integratsioon

  • Pakkuja kiht: Test Engine’i pakkuja kiht liidestub brauseri käitumise juhtimiseks otse Playwrighti API-dega
  • Objektimudel: selle asemel, et töötada töötlemata DOM-elementidega, vastendab Test Engine rakendusepõhiste objektimudelitega
  • Power Fx Kiht: Sisse Power Fx kirjutatud testietappe tõlgendatakse ja täidetakse pakkuja kihi kaudu

Peamised tehnilised omadused

Järgmistes jaotistes tuuakse esile olulised tehnilised funktsioonid, mida Test Engine lisab Playwrightile, sealhulgas rakendusepõhised valijad, brauseri kontekstihaldus ja otsene juurdepääs Playwrighti funktsioonidele täpsemate stsenaariumide jaoks.

Rakendusepõhised valijad

Test Engine kasutab valijate asemel CSS XPath rakendusepõhiseid valijaid:

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

Brauseri konteksti haldamine

Test Engine haldab brauseri kontekste, et toetada erinevaid autentimisstsenaariume.

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

Otsesed näitekirjaniku funktsioonid

Kuigi Test Engine abstraheerib paljusid näitekirjanike interaktsioone, on stsenaariume, kus otsene juurdepääs Playwrighti võimalustele võib olla väärtuslik. Test Engine pakub mitmeid eelvaatefunktsioone, mis võimaldavad Playwrightiga otse suhelda teie Power Fx testietappide kaudu.

Playwrighti funktsioonide kasutamine Test Engine’is

Test Engine sisaldab järgmisi eelvaatefunktsioone, mis võimaldavad teil rakendada Playwrighti elementide valimise võimalusi:

Function Kirjeldus Näide
Eelvaade.PlaywrightAction Toimingu käivitamine elementidega, kasutades CSS või DOM-selektoreid Preview.PlaywrightAction("//button", "click")
Vaadake tavalisi näitekirjaniku tegevusoperatsioone
Eelvaade.PlaywrightActionValue Väärtuse parameetrit nõudva toimingu käivitamine Preview.PlaywrightActionValue("//input[@data-id='1']", "fill", "Hello")
Vaata Üldised näitekirjaniku tegevus- ja väärtusoperatsioonid
Eelvaade.NäitekirjanikuSkript Käivita kohandatud C# skript, mis ühildub Playwrightiga Preview.PlaywrightScript("sample.csx")
Vaata Täpsemalt: Kohandatud näitekirjaniku skriptid
Eelvaade.Paus Peata testi käivitamine ja kuva Dramaturgi Inspektor Preview.Pause()

Märkus.

Nende eelvaatefunktsioonide kasutamiseks peate need lisama oma testiseadete jaotises lubatud funktsioonide loendisse.

Tavalised näitekirjaniku toimingud

Järgmisi toiminguid saab teha funktsiooniga Preview.PlaywrightAction:

Tegevus Kirjeldus Näide
click Elemendi valimine klõpsamise sündmuse abil Preview.PlaywrightAction("//button[@id='submit']", "click")
exists Kontrolli, kas element on olemas Preview.PlaywrightAction("//div[@class='error-message']", "exists")
wait Oota, kuni element on saadaval Preview.PlaywrightAction("//table[@data-loading='false']", "wait")

Tavalised näitekirjaniku tegevusväärtusega toimingud

Järgmisi toiminguid saab teha Preview.PlaywrightActionValue abil: ...

Tegevus Kirjeldus Näide
fill Vormivälja tekstiga täitmine Preview.PlaywrightActionValue("//input[@name='search']", "fill", "Product name")
select Valige valikuloendist suvand Preview.PlaywrightActionValue("//select", "select", "Option2")
setAttribute Elemendile atribuudi määramine Preview.PlaywrightActionValue("//div", "setAttribute", "data-custom='value'")

Millal kasutada otseseid näitekirjaniku funktsioone

Kuigi eelistatakse rakenduse tasemel abstraktsioone, on otsesed Playwrighti funktsioonid kasulikud järgmistel juhtudel:

  • Keerulised kasutajaliidese interaktsioonid, mida standardsed testimismootori funktsioonid ei kata
  • Rakenduste kolmandate osapoolte komponendid Power Platform , mis vajavad erikäsitlust
  • Keeruliste testistsenaariumide silumine, kus on vaja suuremat kontrolli
  • Elementide olekute või omaduste täpsem valideerimine

Näide: Kombineeritud lähenemine

See näide demonstreerib rakenduse tasemel abstraktsioonide kombineerimist otseste Playwrighti toimingutega:

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

Täpsem: Kohandatud näitekirjaniku stsenaariumid

Väga spetsiifiliste stsenaariumide jaoks saate luua kohandatud näitekirjaniku skripte:

  1. Loo fail oma kohandatud näitekirjaniku loogikaga .csx
  2. Vajalik viide Näitekirjaniku komplektid
  3. Rakenda vajalik klassistruktuur
  4. Kutsu skripti oma testimisetappidest
// 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
    }
}

Märkus.

Preview.PlaywrightScript on rakendatud ainult lähtekoodist ehitatud testmootori silumisjärkude jaoks, mitte avaldatud pac test run tööriistas.

Integratsioon arendusprotsessiga

Järgmistes osades kirjeldatakse, kuidas Test Engine’it ja Playwrighti saab kasutada nii kohalikus arenduses kui ka CI/CD keskkondades, toetades mitmesuguseid töövooge interaktiivsest silumisest kuni automatiseeritud torujuhtme käivitamiseni.

Kohalik areng

Kohaliku arenduse jaoks pakub Test Engine terviklikku keskkonda:

  • Kohaliku brauseri käivitamine koos kasutajaliidese nähtavusega
  • Samm-sammult testi sooritamine
  • Üksikasjalikud logid ja diagnostika

CI/CD integratsioon

CI/CD keskkondades saab testimismootor käivitada Playwrighti peata režiimis:

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

Head tavad

Test Engine’i Playwrighti integratsiooniga töötades:

  • Keskendu rakenduse tasemel objektidele DOM-elementide asemel
  • Keeruka loogika jaoks kasuta **funktsioone** toore JavaScripti asemel. Power Fx
  • Kasutage ära sisseehitatud autentimismehhanisme
  • Reserveeri otsesed Playwrighti funktsioonid olukordadeks, kus rakenduse tasemel abstraktsioonid ei ole piisavad
  • Vaadake loodud testid üle, et optimeerida loetavust ja hooldatavust