Proširivost testnih motora (zastarjela)

Napomena

Test Engine je zastario i bit će uklonjen u budućem izdanju. Koristite Power Platform Playwright samples za mogućnosti automatizacije testiranja u Power Platformi i Dynamics 365 uslugama.

Pregled

Power Apps Test Engine ima robustan okvir za proširivost koji omogućuje proširenje osnovnih mogućnosti testiranja kroz različite točke proširenja. Ovaj članak objašnjava:

  • Kako Microsoft potpisuje i potvrđuje ekstenzije prve strane
  • Kako funkcionira model proširivosti pomoću upravljanog okvira proširivosti (MEF)
  • Mogućnosti za tvrtke ili ustanove za stvaranje vlastitih proširenja

Komponente potpisane od strane Microsoft-a

Važno

Tijekom faze javnog pregleda, naredba pac test run učitava samo ekstenzije s Microsoft potpisom. Ovaj dizajn osigurava sigurnost, stabilnost i performanse platforme Test Engine.

Microsoft izrađuje, potpisuje i provjerava komponente prve strane kako bi osigurao da zadovoljavaju standarde kvalitete i sigurnosti. Te komponente uključuju:

  • Osnovni davatelji usluga provjere autentičnosti
  • Davatelji aplikacija radnog područja i aplikacija stvorenih prema modelu
  • Standardne Power Fx funkcije i radnje

Okvir proširivosti (MEF)

Test Engine koristi Managed Extensibility Framework (MEF) da bi omogućio priključnu arhitekturu. Ovaj okvir dopušta tri primarne vrste proširenja:

Proširenja za provjeru autentičnosti

Proširenja za provjeru autentičnosti omogućuju različite načine provjere autentičnosti pomoću Power Platform:

  • Provjera autentičnosti stanja pohrane – zadana metoda provjere autentičnosti temeljena na pregledniku
  • Provjera autentičnosti temeljena na certifikatu - za neinteraktivno izvođenje testa
  • Prilagođeni pružatelji provjere autentičnosti - za specijalizirane scenarije provjere autentičnosti

Dodatne informacije potražite u odjeljku Provjera autentičnosti u testnom modulu.

Proširenja davatelja usluga

Proširenja davatelja usluga omogućuju testiranje različitih vrsta aplikacija:

  • Canvas App Provider - Za testiranje Power Apps canvas aplikacija
  • Davatelj aplikacija stvorenih prema modelu – za testiranje Dataverse aplikacija utemeljenih na modelu
  • Power Fx Pružatelj - Za samostalno izvršavanje Power Fx izjava
  • Portal Provider - Za automatizaciju operacija u Power Apps

Dodatne informacije potražite u odjeljku Aplikacije radnog područja, Aplikacije utemeljene na modelu i Dataverse Proširenja.

Power Fx ekstenzije

Power Fx Proširenja dodaju nove mogućnosti testiranja putem prilagođenih funkcija:

  • Korisnički definirane funkcije - Funkcije s niskim kodom definirane u planu testiranja
  • Implementacije C# ReflectionFunction - Prilagođene funkcije implementirane u C# modulima

Dodatne informacije potražite u odjeljku Power Fx Funkcije i C# ReflectionFunction implementacije.

Mogućnosti razvoja proširenja

Organizacije imaju više opcija za proširenje Test Enginea:

Korištenje open source verzije

Power Apps Test Engine dostupan je kao open source projekt pod MIT licencom. Microsoft iz prve ruke, timovi trećih strana i organizacije mogu:

  • Stvaranje novih davatelja usluga za specijalizirane scenarije testiranja
  • Razviti prilagođene mehanizme provjere autentičnosti
  • Izrada novih implementacija C# ReflectionFunction
  • Stvaranje modula koji proširuju osnovnu funkcionalnost
  • Slanje doprinosa na razmatranje u osnovnom proizvodu

Power Fx korisnički definirane funkcije

Za jednostavnije scenarije možete stvoriti korisnički definirane funkcije izravno u svojim testnim planovima:

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

Prilagođene C# Power Fx funkcije s funkcijom ReflectionFunction

Za složenije scenarije, organizacije mogu razviti prilagođene C# funkcije implementacijom klase ReflectionFunction i njihovom registracijom putem modula:

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

Suradnja s timom Test Engine

Organizacije koje razvijaju vrijedne ekstenzije koristeći open source Test Engine mogu razmotriti izradu pull requesta za svoje ekstenzije kako bi ih učinili dostupnima u službenom proizvodu. Proces obično uključuje:

  1. Development - Kreirajte svoju ekstenziju koristeći open source Test Engine
  2. Provjera valjanosti - temeljito testirajte proširenje u vlastitom okruženju
  3. Suradnja - Surađujte s timom Core Test Engine kako biste procijenili proširenje
  4. Integration - Ako je odobreno, Microsoft potpisuje i integrira proširenje u proizvod

Ovaj model suradnje omogućuje inovacije uz održavanje sigurnosti i pouzdanosti službenog proizvoda Test Engine.

Točke tehničke integracije

U sljedećim odjeljcima opisano je kako se proširivost testnog modula integrira s osnovnim tehnologijama kao što su Playwright i životni ciklus značajki. Razumijevanje ovih integracijskih točaka pomaže vam da učinkovito razvijete i implementirate prilagođena proširenja.

Integracija dramatičara

Power Apps Test Engine izgrađen je na vrhu Playwright, koji pruža temelj za automatizaciju preglednika. Prilagođena proširenja mogu komunicirati s Playwrightovim IBrowserContext kako bi stvorila sofisticirane mogućnosti testiranja temeljene na pregledniku.

Životni ciklus značajki

Nova proširenja slijede životni ciklus značajki:

  1. Prostor naziva pretpregleda – nova proširenja prvo su dostupna u prostoru naziva Pretpregled za rano testiranje
  2. TestEngine imenski prostor - Nakon provjere valjanosti, proširenja se premještaju u jezgru imenskog prostora TestEngine

Prednosti modela proširivosti

Model proširivosti pruža značajne prednosti:

  • Standardizacija - komponente potpisane Microsoft osiguravaju dosljednu kvalitetu i sigurnost
  • Innovation - Model open source omogućuje inovacije vođene zajednicom
  • Fleksibilnost - Organizacije mogu stvoriti specijalizirana proširenja za jedinstvene zahtjeve
  • Integracija - Vrijedna proširenja razmatraju se za uključivanje u službeni proizvod