Sdílet prostřednictvím


Rozšiřitelnost testovacího enginu (preview)

Poznámka:

Funkce Preview nejsou určené pro normální používání a mohou mít omezené fungování. Jsou to funkce, které jsou poskytnuté před svým oficiálním vydáním, aby si je zákazníci mohli co nejdříve vyzkoušet a mohli nám napsat své názory.

Přehled

Power Apps Test Engine disponuje robustním rámcem pro rozšiřitelnost, který umožňuje rozšíření základních testovacích funkcí prostřednictvím různých rozšiřujících bodů. Tento článek vysvětluje:

  • Jak Microsoft podepisuje a ověřuje rozšíření první strany
  • Jak funguje model rozšiřitelnosti s využitím frameworku Managed Extensibility Framework (MEF)
  • Možnosti pro organizace, jak si vytvořit vlastní rozšíření

Komponenty podepsané společností Microsoft

Důležité

Během fáze veřejného náhledu příkaz pac test run načítá pouze rozšíření podepsaná společností Microsoft. Tato konstrukce zajišťuje bezpečnost, stabilitu a výkon platformy Test Engine.

Společnost Microsoft sestavuje, podepisuje a ověřuje komponenty první strany, aby zajistila, že splňují standardy kvality a zabezpečení. Mezi tyto komponenty patří:

  • Poskytovatelé základního ověřování
  • Poskytovatelé aplikací plátna a modelem řízených aplikací
  • Standardní funkce a akce Power Fx

Rámec rozšiřitelnosti (MEF)

Testovací engine používá framework Managed Extensibility Framework (MEF) k umožnění architektury s pluginy. Tento rámec umožňuje tři hlavní typy rozšíření:

Rozšíření ověřování

Rozšíření ověřování umožňují různé způsoby ověřování pomocí Power Platform:

  • Ověřování stavu úložiště – Výchozí metoda ověřování založená na prohlížeči
  • Ověřování na základě certifikátu - Pro neinteraktivní provádění testů
  • Poskytovatelé vlastního ověřování – Pro specializované scénáře ověřování

Další informace naleznete v části Ověřování v testovacím enginu.

Rozšíření poskytovatelů

Rozšíření poskytovatelů umožňují testování různých typů aplikací:

  • Poskytovatel aplikací Canvas – Pro testování Power Apps aplikací Canvas
  • Poskytovatel modelově řízených aplikací – Pro testování modelově řízených aplikací Dataverse
  • Power Fx Provider - Pro nezávislé provádění Power Fx příkazů
  • Poskytovatel portálu - Pro automatizaci operací v Power Apps

Další informace naleznete v částech Aplikace plátna, Aplikace řízené modelem a Dataverse Rozšíření.

Power Fx rozšíření

Power Fx rozšíření přidávají nové testovací možnosti prostřednictvím vlastních funkcí:

  • Uživatelsky definované funkce – Funkce s nízkým kódem definované v testovacím plánu
  • Implementace funkcí reflexe v C# - Vlastní funkce implementované v modulech C#

Další informace naleznete v tématech Power Fx Funkce a Implementace reflexních funkcí v C#.

Možnosti vývoje rozšíření

Organizace mají několik možností, jak rozšířit Test Engine:

Použití open source verze

Testovací engine je k dispozici jako open source projekt pod licencí MIT. Power Apps Týmy od Microsoftu, externí týmy a organizace mohou:

  • Vytvořte nové poskytovatele pro specializované testovací scénáře
  • Vyvíjet vlastní mechanismy ověřování
  • Vytváření nových implementací ReflectionFunction v jazyce C#
  • Vytvářejte moduly, které rozšiřují základní funkcionalitu
  • Zašlete příspěvky k posouzení v rámci hlavního produktu

Power Fx uživatelsky definované funkce

Pro jednodušší scénáře můžete vytvořit uživatelem definované funkce přímo ve svých testovacích plánech:

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í funkce jazyka C# s ReflectionFunction Power Fx

Pro složitější scénáře mohou organizace vyvíjet vlastní funkce C# implementací třídy ReflectionFunction a jejich registrací prostřednictvím modulu:

// 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áce s týmem Test Engine

Organizace, které vyvíjejí cenná rozšíření pomocí open source Test Engine, mohou zvážit vytvoření pull requestu pro svá rozšíření, aby je zpřístupnily v oficiálním produktu. Proces obvykle zahrnuje:

  1. Vývoj - Vytvořte si rozšíření pomocí open source testovacího enginu
  2. Validace - Důkladně otestujte své rozšíření ve vlastním prostředí
  3. Spolupráce - Spolupracujte s týmem Core Test Engine na vyhodnocení rozšíření
  4. Integrace – Pokud je schváleno, Microsoft podepíše a integruje rozšíření do produktu.

Tento model spolupráce umožňuje inovace a zároveň zachovává bezpečnost a spolehlivost oficiálního produktu Test Engine.

Body technické integrace

Následující části popisují, jak se rozšiřitelnost testovacího enginu integruje s klíčovými technologiemi, jako je Playwright, a životním cyklem funkcí. Pochopení těchto integračních bodů vám pomůže efektivně vyvíjet a nasazovat vlastní rozšíření.

Integrace dramatika

Power Apps Testovací engine je postaven na platformě Playwright, která poskytuje základ pro automatizaci prohlížeče. ... Vlastní rozšíření mohou interagovat s **IBrowserContext** od Playwright a vytvářet tak sofistikované testovací funkce založené na prohlížeči. ...

Životní cyklus funkcí

Nová rozšíření se řídí životním cyklem funkcí:

  1. Jmenný prostor Preview – Nová rozšíření jsou nejprve k dispozici v jmenném prostoru Preview pro účely včasného testování.
  2. Jmenný prostor TestEngine - Po ověření se rozšíření přesunou do hlavního jmenného prostoru TestEngine

Výhody modelu rozšiřitelnosti

Model rozšiřitelnosti poskytuje významné výhody:

  • Standardizace - Komponenty podepsané společností Microsoft zajišťují konzistentní kvalitu a zabezpečení
  • Inovace - Model open source umožňuje inovace řízené komunitou
  • Flexibilita - Organizace si mohou vytvářet specializovaná rozšíření pro jedinečné požadavky
  • Integrace - Cenná rozšíření jsou zvažována k zahrnutí do oficiálního produktu