Extensibilitatea Motorului de Testare (depreciată)

Notă

Test Engine este deprevăzut și va fi eliminat într-o versiune viitoare. Folosește Power Platform Playwright samples pentru capabilități de automatizare a testelor în Power Platform și serviciile Dynamics 365.

Prezentare generală

Power Apps Test Engine dispune de un cadru robust de extensibilitate care permite extinderea capabilităților de bază de testare prin diverse puncte de extensie. Acest articol explică:

  • Cum semnează și validează Microsoft extensiile first-party
  • Cum funcționează modelul de extensibilitate folosind Managed Extensibility Framework (MEF)
  • Opțiuni pentru organizații de a-și crea propriile extensii

Componente semnate de Microsoft

Important

În faza de previzualizare publică, comanda pac test run încarcă doar extensiile semnate Microsoft. Acest design asigură securitatea, stabilitatea și performanța platformei Test Engine.

Microsoft construiește, semnează și validează componente de primă parte pentru a se asigura că acestea respectă standardele de calitate și securitate. Aceste componente includ:

  • Furnizori de autentificare principali
  • Furnizori de aplicații pânză și aplicații bazate pe model
  • Funcții și acțiuni standard Power Fx

Cadrul de extensibilitate (MEF)

Test Engine utilizează *Managed Extensibility Framework* (MEF) pentru a permite o arhitectură conectabilă. ... Acest framework permite trei tipuri principale de extensii:

Extensii de autentificare

Extensiile de autentificare permit diferite modalități de autentificare cu Power Platform:

  • Autentificarea stării de stocare - Metoda implicită de autentificare bazată pe browser
  • Autentificare bazată pe certificat - Pentru executarea testelor neinteractive
  • Furnizori de autentificare personalizați - Pentru scenarii de autentificare specializate

Pentru mai multe informații, consultați Autentificarea în Test Engine.

Extensii de furnizor

Extensiile furnizorului permit testarea diferitelor tipuri de aplicații:

  • Canvas App Provider - Pentru testarea aplicațiilor Power Apps canvas
  • Furnizor de aplicații bazate pe model - Pentru testarea Dataverse aplicațiilor bazate pe model
  • Power Fx Furnizor - Pentru executarea Power Fx instrucțiunilor independent
  • Portal Provider - Pentru automatizarea operațiunilor în Power Apps

Pentru mai multe informații, consultați Aplicații Canvas, Aplicații bazate pe model și Dataverse Extensii.

Power Fx extensii

Power Fx Extensiile adaugă noi capabilități de testare prin funcții personalizate:

  • Funcții definite de utilizator - Funcții low-code definite în planul de testare
  • Implementări C# ReflectionFunction - Funcții personalizate implementate în module C#

Pentru mai multe informații, consultați Power Fx Funcții și Implementări C# ReflectionFunction.

Opțiuni de dezvoltare a extensiilor

Organizațiile au mai multe opțiuni pentru extinderea Test Engine:

Folosirea versiunii open source

Motorul de testare Power Apps este disponibil ca proiect open source sub licența MIT. Microsoft first-party, echipele terțe și organizațiile pot:

  • Creați furnizori noi pentru scenarii de testare specializate
  • Dezvoltați mecanisme de autentificare personalizate
  • Construiți noi implementări C# ReflectionFunction
  • Creați module care extind funcționalitatea de bază
  • Trimiteți contribuții pentru a fi luate în considerare în cadrul produsului principal

Power Fx funcții definite de utilizator

Pentru scenarii mai simple, puteți crea funcții definite de utilizator direct în planurile de testare:

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

Funcții C# personalizate cu ReflectionFunction Power Fx

Pentru scenarii mai complexe, organizațiile pot dezvolta funcții C# personalizate prin implementarea clasei ReflectionFunction și înregistrarea acestora printr-un modul:

// 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...
}

Colaborarea cu echipa Test Engine

Organizațiile care dezvoltă extensii valoroase folosind Motorul de Testare open source pot lua în considerare crearea unei pull request pentru extensiile lor, astfel încât să fie disponibile în produsul oficial. Procesul implică de obicei:

  1. Development - Creează-ți extensia folosind open source Test Engine
  2. Validare - Testați extensia cu atenție în propriul mediu
  3. Colaborare - Lucrați cu echipa Core Test Engine pentru a evalua extensia
  4. Integrare - Dacă este aprobat, Microsoft semnează și integrează extensia în produs

Acest model de colaborare permite inovația, menținând în același timp securitatea și fiabilitatea produsului oficial Test Engine.

Puncte de integrare tehnică

Următoarele secțiuni descriu modul în care extensibilitatea Test Engine se integrează cu tehnologiile de bază, cum ar fi Playwright, și ciclul de viață al funcțiilor. Înțelegerea acestor puncte de integrare vă ajută să dezvoltați și să implementați eficient extensii personalizate.

Integrare dramaturg

Power Apps Test Engine este construit peste Playwright, care oferă baza pentru automatizarea browserului. Extensiile personalizate pot interacționa cu IBrowserContext din Playwright pentru a crea capabilități sofisticate de testare bazate pe browser. ...

Ciclul de viață al caracteristicilor

Noile extensii respectă un ciclu de viață al caracteristicilor:

  1. Spațiul de nume Preview - Noile extensii sunt disponibile mai întâi în spațiul de nume Preview pentru testare timpurie
  2. Spațiul de nume TestEngine - După validare, extensiile se mută în spațiul de nume TestEngine principal

Beneficiile modelului de extensibilitate

Modelul de extensibilitate oferă beneficii semnificative:

  • Standardizare - Componentele semnate Microsoft asigură o calitate și securitate consistente
  • Inovație - Modelul open source permite inovația condusă de comunitate
  • Flexibilitate - Organizațiile pot crea extensii specializate pentru cerințe unice
  • Integrare - Extensiile valoroase sunt luate în considerare pentru includerea în produsul oficial