Zdieľať cez


Rozšíriteľnosť testovacieho enginu (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 obsahuje robustný rámec rozšíriteľnosti, ktorý umožňuje rozšírenie základných testovacích funkcií prostredníctvom rôznych rozširujúcich bodov. Tento článok vysvetľuje:

  • Ako spoločnosť Microsoft podpisuje a overuje rozšírenia prvej strany
  • Ako funguje model rozšíriteľnosti pomocou rámca spravovanej rozšíriteľnosti (MEF)
  • Možnosti pre organizácie na vytvorenie vlastných rozšírení

Komponenty podpísané spoločnosťou Microsoft

Dôležité

Počas fázy verejnej ukážky príkaz pac test run načíta iba rozšírenia podpísané spoločnosťou Microsoft. Tento dizajn zaisťuje bezpečnosť, stabilitu a výkon platformy Test Engine.

Spoločnosť Microsoft vytvára, podpisuje a overuje komponenty prvej strany, aby sa zabezpečilo, že spĺňajú štandardy kvality a zabezpečenia. Tieto komponenty zahŕňajú:

  • Poskytovatelia základnej autentifikácie
  • Poskytovatelia aplikácií plátna a aplikácií riadených modelom
  • Štandardné funkcie a akcie Power Fx

Rámec rozšíriteľnosti (MEF)

Testovací engine používa framework spravovanej rozšíriteľnosti (MEF) na umožnenie zásuvnej architektúry. Tento rámec umožňuje tri hlavné typy rozšírení:

Rozšírenia overovania

Rozšírenia overovania umožňujú rôzne spôsoby overovania pomocou Power Platform:

  • Overovanie stavu úložiska - Predvolená metóda overovania založená na prehliadači
  • Autentifikácia na základe certifikátu - Pre neinteraktívne vykonávanie testov
  • Poskytovatelia vlastného overovania – Pre špecializované scenáre overovania

Viac informácií nájdete v časti Overovanie v testovacom nástroji.

Rozšírenia poskytovateľov

Rozšírenia poskytovateľov umožňujú testovanie rôznych typov aplikácií:

  • Poskytovateľ aplikácií Canvas – Na testovanie Power Apps aplikácií Canvas
  • Poskytovateľ aplikácií riadených modelom - Na testovanie Dataverse aplikácií riadených modelom
  • Power Fx Poskytovateľ - Na nezávislé vykonávanie Power Fx príkazov
  • Poskytovateľ portálu - Na automatizáciu operácií v Power Apps

Viac informácií nájdete v častiach Aplikácie plátna, Aplikácie riadené modelom a Dataverse Rozšírenia.

Power Fx rozšírenia

Power Fx rozšírenia pridávajú nové možnosti testovania prostredníctvom vlastných funkcií:

  • Používateľom definované funkcie - Funkcie s nízkym kódom definované v testovacom pláne
  • Implementácie funkcií reflexie v jazyku C# – Vlastné funkcie implementované v moduloch jazyka C#

Viac informácií nájdete v častiach Power Fx Funkcie a Implementácie funkcií reflexie v jazyku C#.

Možnosti vývoja rozšírení

Organizácie majú viacero možností na rozšírenie Test Engine:

Používanie verzie s otvoreným zdrojovým kódom

Testovací engine je dostupný ako projekt s otvoreným zdrojovým kódom pod licenciou MIT. Power Apps Tímy spoločnosti Microsoft, tímy tretích strán a organizácie môžu:

  • Vytvorte nových poskytovateľov pre špecializované testovacie scenáre
  • Vyvinúť vlastné mechanizmy autentifikácie
  • Vytvorenie nových implementácií ReflectionFunction v jazyku C#
  • Vytvárajte moduly, ktoré rozširujú základnú funkcionalitu
  • Predložte príspevky na posúdenie v rámci hlavného produktu

Power Fx používateľom definované funkcie

Pre jednoduchšie scenáre môžete vytvoriť používateľom definované funkcie priamo vo svojich testovacích plánoch:

testSuite:
  testCases:
    - testCaseName: "Test with custom functions"
      userDefineFunctions:
        - name: "FormatDateString"
          parameters: [date]
          expression: "Text(date, 'yyyy-MM-dd')"
      steps:
        # Use the custom function in your test steps
        - action: PowerFxTestStep
          expression: FormatDateString(Now())

Vlastné funkcie jazyka C# s funkciou ReflectionFunction Power Fx

V zložitejších scenároch môžu organizácie vyvíjať vlastné funkcie jazyka C# implementáciou triedy a ich registráciou prostredníctvom modulu: ReflectionFunction

// Define your function class
public class SampleFunction : ReflectionFunction
{
    public SampleFunction() : base(DPath.Root.Append(new DName("Preview")), "Sample", FormulaType.Blank)
    {
    }

    public BlankValue Execute()
    {
        Console.WriteLine("Sample function executed");
        return BlankValue.NewBlank();
    }
}

// Register your function in a module
[Export(typeof(ITestEngineModule))]
public class TestEngineSampleModule : ITestEngineModule
{
    public void RegisterPowerFxFunction(PowerFxConfig config, ITestInfraFunctions testInfraFunctions, 
        ITestWebProvider testWebProvider, ISingleTestInstanceState singleTestInstanceState, 
        ITestState testState, IFileSystem fileSystem)
    {
        config.AddFunction(new SampleFunction());
    }
    
    // Implement other required interface methods...
}

Spolupráca s tímom Test Engine

Organizácie, ktoré vyvíjajú hodnotné rozšírenia pomocou open source Test Engine, môžu zvážiť vytvorenie pull requestu pre svoje rozšírenia, aby ich sprístupnili v oficiálnom produkte. Proces zvyčajne zahŕňa:

  1. Vývoj - Vytvorte si rozšírenie pomocou open source testovacieho enginu
  2. Validácia - Dôkladne otestujte svoje rozšírenie vo vlastnom prostredí
  3. Spolupráca - Spolupracujte s tímom Core Test Engine na vyhodnotení rozšírenia
  4. Integrácia – Ak je schválené, spoločnosť Microsoft podpíše a integruje rozšírenie do produktu

Tento model spolupráce umožňuje inovácie a zároveň zachováva bezpečnosť a spoľahlivosť oficiálneho produktu Test Engine.

Body technickej integrácie

Nasledujúce časti opisujú, ako sa rozšíriteľnosť testovacieho enginu integruje s kľúčovými technológiami, ako je Playwright, a životným cyklom funkcií. Pochopenie týchto integračných bodov vám pomôže efektívne vyvíjať a nasadzovať vlastné rozšírenia.

Integrácia dramatikov

Power Apps Testovací engine je postavený na platforme Playwright, ktorá poskytuje základ pre automatizáciu prehliadača. ... Vlastné rozšírenia môžu interagovať s Playwrightovým IBrowserContext a vytvárať sofistikované testovacie funkcie založené na prehliadači.

Životný cyklus funkcií

Nové rozšírenia sa riadia životným cyklom funkcií:

  1. Názvy Preview – Nové rozšírenia sú najskôr k dispozícii v názvy Preview pre skoré testovanie
  2. Priestor názvov TestEngine – Po overení sa rozšírenia presunú do hlavného priestoru názvov TestEngine

Výhody modelu rozšíriteľnosti

Model rozšíriteľnosti poskytuje významné výhody:

  • Štandardizácia - Komponenty podpísané spoločnosťou Microsoft zabezpečujú konzistentnú kvalitu a bezpečnosť
  • Inovácia - Model otvoreného zdrojového kódu umožňuje inovácie riadené komunitou
  • Flexibilita - Organizácie si môžu vytvoriť špecializované rozšírenia pre jedinečné požiadavky
  • Integrácia - Hodnotné rozšírenia sa zvažujú na zahrnutie do oficiálneho produktu