Zdieľať cez


Integrácia testovacieho enginu a dramatika (ukážka)

Poznámka

Funkcie ukážky nie sú určené na produkčné účely a môžu mať obmedzenú funkčnosť. Tieto funkcie sú k dispozícii pred oficiálnym vydaním, aby k nim mohli zákazníci získať rýchly prístup a poskytnúť odozvu.

Prehľad

Power Apps Test Engine používa **Playwright** ako svoju základnú technológiu automatizácie prehliadača. ... Táto integrácia poskytuje Test Engine výkonné, spoľahlivé a multiprehliadačové testovacie možnosti a zároveň pridáva niekoľko vrstiev abstrakcie pre zjednodušenie tvorby testov pre aplikácie. Power Platform

Ako Test Engine vylepšuje Playwritera

Zatiaľ čo Playwrit ponúka vynikajúce možnosti automatizácie prehliadača, Test Engine tieto možnosti rozširuje špeciálne pre Power Platform:

Vylepšenie testovacieho enginu Description
Abstrakcie na úrovni aplikácie Testovací engine pracuje s objektmi na úrovni aplikácie namiesto prvkov DOM, vďaka čomu sú testy odolnejšie voči zmenám v používateľskom rozhraní.
Power Fx Integrácia Test Engine pridáva podporu, ktorá umožňuje nízkokódový prístup k tvorbe testov Power Fx
Vstavané overovanie Predpripravené mechanizmy autentifikácie spracovávajú scenáre podmieneného prístupu Microsoft Entra
Dataverse Integrácia Priama integrácia s Dataverse umožňuje komplexné testovanie od začiatku do konca
Špecializovaní poskytovatelia Optimalizovaní poskytovatelia pre aplikácie Canvas a aplikácie riadené modelmi...

Technická implementácia

Nasledujúce časti opisujú, ako Test Engine stavia na základe automatizácie prehliadača od Playwright a integruje ho s abstrakciami špecifickými pre daný prehliadač, čo umožňuje robustnú a udržiavateľnú automatizáciu testovania. Power Platform

Nadácia automatizácie prehliadačov

Testovací engine využíva základné funkcie Playwrightu pre konzistentnú automatizáciu prehliadača:

  • Podpora viacerých prehliadačov pre Chrome, Firefoxa Microsoft Edge
  • Spoľahlivé mechanizmy čakania, ktoré automaticky čakajú na prípravu prvkov
  • Zachytenie sieťových požiadaviek na simuláciu odpovedí API
  • Nástroje na sledovanie a ladenie na diagnostiku zlyhaní testov

Architektonická integrácia Test Engine

  • Vrstva poskytovateľa: Vrstva poskytovateľa v Test Engine priamo komunikuje s rozhraniami API Playwright a riadi správanie prehliadača.
  • Objektový model: Namiesto práce so surovými prvkami DOM sa Test Engine mapuje na objektové modely špecifické pre aplikáciu
  • Power Fx Vrstva: Testovacie kroky napísané v Power Fx sú interpretované a vykonávané prostredníctvom vrstvy poskytovateľa

Kľúčové technické vlastnosti

Nasledujúce časti zdôrazňujú dôležité technické funkcie, ktoré Test Engine pridáva nad rámec Playwrightu, vrátane selektorov špecifických pre aplikácie, správy kontextu prehliadača a priameho prístupu k funkciám Playwrightu pre pokročilé scenáre.

Selektory špecifické pre aplikáciu

Testovací engine používa namiesto selektorov CSS alebo XPath selektory špecifické pre aplikáciu:

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

Správa kontextu prehliadača

Testovací engine spravuje kontexty prehliadača na podporu rôznych scenárov autentifikácie:

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

Funkcie priameho dramatika

Hoci Test Engine abstrahuje mnoho interakcií s Playwriters, existujú scenáre, v ktorých môže byť priamy prístup k funkciám Playwriters užitočný. Test Engine poskytuje niekoľko funkcií ukážky, ktoré umožňujú priamu interakciu s Playwrightom z vašich testovacích krokov. Power Fx

Používanie funkcií Playwriter v Test Engine

Testovací engine obsahuje nasledujúce funkcie ukážky, ktoré vám umožňujú použiť možnosti výberu prvkov v Playwrighte:

Function Description Príklad
Náhľad.DramatikAkcia Vykonajte akciu na prvkoch pomocou selektorov CSS alebo DOM Preview.PlaywrightAction("//button", "click")
Pozrite si časť Bežné akcie dramatikov
Preview.PlaywrightActionHodnota Vykonajte akciu, ktorá vyžaduje parameter hodnoty Preview.PlaywrightActionValue("//input[@data-id='1']", "fill", "Hello")
Pozrite si Bežné operácie s hodnotami akcií dramatikov
Náhľad.Script dramatika Spustite vlastný skript C#, ktorý je prepojený s Playwrightom Preview.PlaywrightScript("sample.csx")
Pozrite si časť Rozšírené: Vlastné dramatické scenáre
Náhľad.Pozastavenie Pozastavenie vykonávania testu a zobrazenie inšpektora dramatikov Preview.Pause()

Poznámka

Ak chcete používať tieto funkcie ukážky, musíte ich pridať do zoznamu povolených funkcií v sekcii nastavení testu.

Bežné akcie dramatikov

Nasledujúce operácie je možné vykonať pomocou funkcie Preview.PlaywrightAction:

Činnosť Description Príklad
click Výber prvku pomocou udalosti click Preview.PlaywrightAction("//button[@id='submit']", "click")
exists Skontrolujte, či prvok existuje Preview.PlaywrightAction("//div[@class='error-message']", "exists")
wait Počkajte, kým bude prvok k dispozícii Preview.PlaywrightAction("//table[@data-loading='false']", "wait")

Bežné operácie s hodnotami akcií dramatikov

Nasledujúce operácie je možné vykonať pomocou Preview.PlaywrightActionValue:

Činnosť Description Príklad
fill Vyplnenie poľa formulára textom Preview.PlaywrightActionValue("//input[@name='search']", "fill", "Product name")
select Vyberte možnosť zo zoznamu možností Preview.PlaywrightActionValue("//select", "select", "Option2")
setAttribute Nastavenie atribútu na element Preview.PlaywrightActionValue("//div", "setAttribute", "data-custom='value'")

Kedy použiť priame funkcie dramatika

Hoci sú preferované abstrakcie na úrovni aplikácie, priame funkcie Playwright sú užitočné v týchto scenároch:

  • Zložité interakcie používateľského rozhrania nepokryté štandardnými funkciami testovacieho nástroja
  • Komponenty tretích strán v rámci Power Platform aplikácií, ktoré vyžadujú špeciálne zaobchádzanie
  • Ladenie zložitých testovacích scenárov, kde je potrebná väčšia kontrola
  • Pokročilé overovanie stavov alebo vlastností prvkov

Príklad: Kombinovaný prístup

Tento príklad demonštruje kombináciu abstrakcií na úrovni aplikácie s priamymi akciami Playwrightu:

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

Pokročilé: Vlastné dramatické scenáre

Pre vysoko špecializované scenáre si môžete vytvoriť vlastné skripty pre dramatikov:

  1. Vytvorte súbor s vlastnou logikou pre dramatika .csx
  2. Požadovaná referencia Zostavy dramatikov
  3. Implementujte požadovanú štruktúru tried
  4. Zavolajte skript z krokov testovania
// 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
    }
}

Poznámka

Súbor Preview.PlaywrightScript je implementovaný iba pre ladiace zostavy Test Engine zostavené zo zdrojového kódu, nie vo vydanom nástroji pac test run .

Integrácia s vývojovým procesom

Nasledujúce časti opisujú, ako možno Test Engine a Playwright použiť v lokálnom vývojovom prostredí aj v prostredí CI/CD, pričom podporujú celý rad pracovných postupov od interaktívneho ladenia až po automatizované vykonávanie v rámci pipeline.

Miestny rozvoj

Pre lokálny vývoj poskytuje Test Engine kompletné prostredie:

  • Lokálne spustenie v prehliadači s viditeľnosťou v používateľskom rozhraní
  • Postupné vykonávanie testu
  • Podrobné protokoly a diagnostika

Integrácia CI/CD

V prostrediach CI/CD môže Test Engine spúšťať Playwrit v bezhlavom režime:

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

Osvedčené postupy

Pri práci s integráciou Playwright v Test Engine:

  • Zamerajte sa na objekty na úrovni aplikácie a nie na prvky DOM
  • Pre komplexnú logiku používajte funkcie namiesto surového JavaScriptu Power Fx
  • Využite vstavané mechanizmy overovania
  • Priame funkcie dramatika vyhradiť pre scenáre, kde abstrakcie na úrovni aplikácie nie sú dostatočné
  • Skontrolujte vygenerované testy a optimalizujte ich čitateľnosť a údržbu