Rozšiřitelnost testovacího stroje (zastaralé)

Poznámka:

Test Engine je zastaralý a v budoucí verzi se odebere. Ukázky Power Platform Playwright slouží k testování možností automatizace v Power Platform a Dynamics 365 službách.

Přehled

Power Apps Test Engine obsahuje robustní architekturu rozšiřitelnosti, která umožňuje rozšíření základních možností testování prostřednictvím různých bodů rozšíření. Tento článek vysvětluje:

  • Jak společnost Microsoft podepisuje a ověřuje prvostranová rozšíření
  • 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í pro 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 Canvas Applications, Aplikace řízené modelem a Rozšíření Dataverse.

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 Funkce Power Fx a Implementace funkcí odrazu v C#.

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

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

Použití verze open source

Testovací modul Power Apps je k dispozici jako open source projekt v rámci licence MIT. Interní tým Microsoftu, týmy třetích stran a organizace můžou:

  • 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# Power Fx s ReflectionFunction

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. Tento 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 Playwright

Power Apps Test Engine je založený na 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