Partajați prin


Extensibilitatea Test Engine (previzualizare)

Notă

Caracteristicile în regim de previzualizare nu sunt destinate utilizării în producție și pot avea funcționalitate restricționată. Aceste caracteristici sunt disponibile înainte de lansarea oficială, astfel încât clienții să poată obține acces din timp și să poată oferi feedback.

Prezentare generală

Power Apps Test Engine dispune de un cadru robust de extensibilitate care permite extinderea capacităților de testare de bază 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 de Microsoft. ... Acest design asigură securitatea, stabilitatea și performanța platformei Test Engine.

Microsoft construiește, semnează și validează componente proprii 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:

  • Furnizor de aplicații Canvas - Pentru testarea Power Apps aplicațiilor 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
  • Furnizor de portaluri - 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:

Utilizarea versiunii open source

Motorul de testare este disponibil ca proiect open source sub licența MIT. Power Apps Microsoft proprietar, 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 solicitări de extragere (pull request) pentru extensiile lor, pentru a le face disponibile în produsul oficial. Procesul implică de obicei:

  1. Dezvoltare - Creați extensia folosind motorul de testare open source
  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 Motorul de testare este construit pe baza Playwright, care oferă fundația 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 de Microsoft asigură o calitate și o securitate constante
  • 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