Megosztás:


Tesztmotor és drámaíró integráció (előzetes verzió)

Feljegyzés

Az előzetes funkciókat nem célszerű termelési környezetben használni, és előfordulhat, hogy korlátozott funkcionalitással rendelkeznek. Ezek a funkciók a hivatalos kiadás előtt érhetők el, hogy az ügyfelek korán megismerkedhessenek velük, és visszajelzést adhassanak róluk.

Áttekintés

Power Apps A Test Engine a Playwrightot használja alapvető böngészőautomatizálási technológiájaként. Ez az integráció hatékony, megbízható és böngészőkön átívelő tesztelési képességeket biztosít a Test Engine számára, miközben több absztrakciós réteget ad hozzá az alkalmazások tesztkészítésének Power Platform egyszerűsítése érdekében.

Hogyan javítja a Test Engine a drámaírót

Míg a Playwright kiváló böngészőautomatizálási képességeket kínál, a Test Engine kifejezetten a következőkre Power Platform terjeszti ki ezeket a képességeket:

Tesztmotor fejlesztése Description
App-szintű absztrakciók A Test Engine a DOM-elemek helyett alkalmazásszintű objektumokkal működik, így a tesztek rugalmasabbak a felhasználói felület változásaival szemben
Power Fx Integráció A Test Engine támogatja Power Fx a tesztelés készítését, így kevés kódolást igénylő megközelítést tesz lehetővé
Beépített hitelesítés Előre összeállított hitelesítési mechanizmusok kezelése Microsoft Entra és feltételes hozzáférési forgatókönyvei
Dataverse Integráció A közvetlen integráció Dataverse lehetővé teszi az átfogó, végpontok közötti tesztelést
Szakosodott szolgáltatók Vászonalapú alkalmazásokhoz és modellvezérelt alkalmazásokhoz optimalizált szolgáltatók

Műszaki megvalósítás

A következő szakaszok azt mutatják be, hogy a Test Engine hogyan épít a Playwright böngészőautomatizálási alapjára, és hogyan integrálja azt Power Platform specifikus absztrakciókkal, lehetővé téve a robusztus és karbantartható tesztautomatizálást.

Böngészőautomatizálási alap

A Test Engine a Playwright alapvető képességeit használja a böngésző következetes automatizálásához:

  • Böngészők közötti támogatás a Chrome-hoz Firefox, és Microsoft Edge
  • Megbízható várakozási mechanizmusok , amelyek automatikusan megvárják, amíg az elemek készen állnak
  • Hálózati kérelmek elfogása az API-válaszok szimulálásához
  • Nyomkövetési és hibakeresési eszközök a teszthibák diagnosztizálásához

A Test Engine architekturális integrációja

  • Szolgáltatói réteg: A Test Engine szolgáltatói rétege közvetlenül kapcsolódik a Playwright API-khoz a böngésző viselkedésének szabályozásához
  • Objektummodell: A nyers DOM-elemekkel való munka helyett a tesztmotor alkalmazásspecifikus objektummodellekre van leképezve
  • Power Fx Réteg: A beírt Power Fx tesztlépések értelmezése és végrehajtása a szolgáltatói rétegen keresztül történik

Főbb műszaki jellemzők

A következő szakaszok kiemelik azokat a fontos technikai funkciókat, amelyeket a Test Engine hozzáad a Playwrighthoz, beleértve az alkalmazásspecifikus választókat, a böngésző környezetkezelését és a Playwright funkciókhoz való közvetlen hozzáférést a speciális forgatókönyvekhez.

Alkalmazásspecifikus választók

A tesztmotor alkalmazásspecifikus választókat használ a vagy választók CSS helyett 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();

Böngésző környezetkezelés

A tesztmotor kezeli a böngészőkörnyezeteket a különböző hitelesítési forgatókönyvek támogatásához:

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

Közvetlen drámaírói funkciók

Bár a Test Engine számos drámaírói interakciót absztrahál, vannak olyan forgatókönyvek, amikor a Playwright képességeinek közvetlen elérése értékes lehet. A Test Engine számos előnézeti funkciót kínál, amelyek lehetővé teszik a Playwrighttal való közvetlen interakciót a Power Fx tesztlépéseken belül.

A Drámaíró függvények használata a Test Engine-ben

A Test Engine a következő előnézeti funkciókat tartalmazza, amelyek lehetővé teszik a Playwright elemkiválasztási képességeinek alkalmazását:

Function Description Példa
Előnézet.SzínészAkció Művelet végrehajtása elemeken a DOM-választók használatával CSS Preview.PlaywrightAction("//button", "click")
Lásd a gyakori drámaírói akcióműveleteket
Előnézet.PlaywrightActionValue Paramétert igénylő művelet végrehajtása Preview.PlaywrightActionValue("//input[@data-id='1']", "fill", "Hello")
Lásd a drámaíró gyakori akcióérték-műveleteit
Előnézet.JátékíróSzkript Egyéni C#-szkript végrehajtása, amely a Playwrighthoz kapcsolódik Preview.PlaywrightScript("sample.csx")
Lásd: Speciális: Egyéni drámaírói forgatókönyvek
Előnézet.Szünet A teszt végrehajtásának szüneteltetése és a Drámaíró vizsgáló megjelenítése Preview.Pause()

Feljegyzés

Az előnézeti függvények használatához hozzá kell adnia az előnézeti függvényeket a tesztbeállítások szakasz engedélyezett listájához.

Gyakori drámaírói akcióműveletek

A következő műveletek hajthatók végre a Preview.PlaywrightAction használatával:

Művelet Description Példa
click Elem kiválasztása kattintási esemény használatával Preview.PlaywrightAction("//button[@id='submit']", "click")
exists Ellenőrizze, hogy létezik-e elem Preview.PlaywrightAction("//div[@class='error-message']", "exists")
wait Várja meg, amíg egy elem elérhetővé válik Preview.PlaywrightAction("//table[@data-loading='false']", "wait")

Gyakori drámaíró akcióérték-műveletek

A következő műveletek hajthatók végre a Preview.PlaywrightActionValue használatával:

Művelet Description Példa
fill Űrlapmező kitöltése szöveggel Preview.PlaywrightActionValue("//input[@name='search']", "fill", "Product name")
select Válasszon egy lehetőséget a kiválasztási listából Preview.PlaywrightActionValue("//select", "select", "Option2")
setAttribute Attribútum beállítása egy elemhez Preview.PlaywrightActionValue("//div", "setAttribute", "data-custom='value'")

Mikor érdemes közvetlen drámaírói funkciókat használni?

Bár az alkalmazásszintű absztrakciók előnyben részesítettek, a közvetlen Playwright-függvények hasznosak az alábbi esetekben:

  • A szabványos tesztmotor-funkciók által nem lefedett összetett felhasználói felületi interakciók
  • Harmadik féltől származó összetevők speciális kezelést igénylő alkalmazásokban Power Platform
  • Összetett tesztforgatókönyvek hibakeresése, ahol nagyobb vezérlésre van szükség
  • Az elemállapotok vagy tulajdonságok speciális ellenőrzése

Példa: Kombinált megközelítés

Ez a példa az alkalmazásszintű absztrakciók és a közvetlen Playwright-műveletek kombinálását mutatja be:

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

Haladó: Egyéni drámaíró forgatókönyvek

Speciális forgatókönyvek esetén egyéni forgatókönyveket hozhat létre:

  1. Fájl létrehozása .csx az egyéni Playwright logikával
  2. Referencia szükséges Drámaíró összeállítások
  3. A szükséges osztálystruktúra megvalósítása
  4. A szkript meghívása a tesztlépésekből
// 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
    }
}

Feljegyzés

A Preview.PlaywrightScript csak a forrásból készült tesztmotor hibakeresési buildjeihez van implementálva, a kiadott pac test run eszközben nem.

Integráció a fejlesztési folyamattal

A következő szakaszok azt ismertetik, hogy a Test Engine és a Playwright hogyan használható helyi fejlesztési és CI/CD-környezetekben, és hogyan támogathatja a munkafolyamatok széles skáláját az interaktív hibakereséstől az automatizált folyamatvégrehajtásig.

Helyi fejlesztés

A helyi fejlesztéshez a Test Engine teljes környezetet biztosít:

  • Helyi böngésző végrehajtása felhasználói felület láthatóságával
  • Lépésről lépésre teszt végrehajtása
  • Részletes naplók és diagnosztika

CI/CD integráció

CI/CD környezetben a Test Engine fej nélküli módban futtathatja a Playwrightot:

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

Ajánlott eljárások

A Test Engine drámaíró integrációjának használatakor:

  • Fókusz az alkalmazásszintű objektumokra a DOM-elemek helyett
  • Használjon Power Fx függvényeket összetett logikához a nyers JavaScript helyett
  • Használja ki a beépített hitelesítési mechanizmusok előnyeit
  • Közvetlen Playwright-függvények fenntartása olyan forgatókönyvekhez, ahol az alkalmazásszintű absztrakciók nem elegendőek
  • A generált tesztek áttekintése az olvashatóság és a karbantartás optimalizálása érdekében