Utvidbarhet for testmotor (utgått)

Notat

Testmotoren er avskrevet og vil bli fjernet i en fremtidig versjon. Bruk eksempler på Power Platform Playwright for testautomasjonsfunksjoner i Power Platform og Dynamics 365 tjenester.

Oversikt

Power Apps Test Engine har et robust rammeverk for utvidbarhet som gjør at kjernetestfunksjonene kan utvides gjennom ulike utvidelsespunkter. Denne artikkelen forklarer:

  • Hvordan Microsoft signerer og validerer førstepartsutvidelser
  • Slik fungerer utvidelsesmodellen ved hjelp av rammeverket for administrert utvidelse (MEF)
  • Alternativer for organisasjoner for å opprette sine egne utvidelser

Microsoft-signerte komponenter

Viktig!

I løpet av den offentlige forhåndsvisningsfasen laster kommandoen pac testkjøring bare inn Microsoft signerte utvidelser. Denne designen sikrer sikkerhet, stabilitet og ytelse til Test Engine-plattformen.

Microsoft bygger, signerer og validerer førstepartskomponenter for å sikre at de oppfyller kvalitets- og sikkerhetsstandarder. Disse komponentene inkluderer:

  • Sentrale godkjenningsleverandører
  • Leverandører av lerretsapper og modelldrevne apper
  • Standardfunksjoner Power Fx og handlinger

Rammeverk for utvidbarhet (MEF)

Test Engine bruker MEF-rammeverket (Managed Extensibility Framework) til å aktivere en arkitektur som kan kobles til. Dette rammeverket tillater tre primære typer utvidelser:

Utvidelser for godkjenning

Godkjenningsutvidelser gjør det mulig å godkjenne på Power Platform forskjellige måter:

  • Godkjenning av lagringstilstand – Standard nettleserbasert godkjenningsmetode
  • Sertifikatbasert godkjenning – For ikke-interaktiv testkjøring
  • Egendefinerte godkjenningsleverandører – For spesialiserte godkjenningsscenarier

Hvis du vil ha mer informasjon, kan du se Godkjenning i testmotoren.

Utvidelser for leverandører

Leverandørutvidelser gjør det mulig å teste ulike typer applikasjoner:

  • Lerretsappleverandør – For testing av Power Apps-lerretsapper
  • Modelldrevet appleverandør – For testing av Dataverse modelldrevne apper
  • Power Fx Leverandør - For å utføre Power Fx uttalelser uavhengig
  • Portal Provider – Automatisere operasjoner i Power Apps

Hvis du vil ha mer informasjon, kan du se Lerretsapplikasjoner, Modelldrevne applikasjoner og Dataverse utvidelser.

Power Fx Utvidelser

Power Fx Utvidelser legger til nye testfunksjoner gjennom tilpassede funksjoner:

  • Brukerdefinerte funksjoner – Lavkodefunksjoner definert i testplanen
  • C# ReflectionFunction-implementeringer - Egendefinerte funksjoner implementert i C#-moduler

Hvis du vil ha mer informasjon, kan du se Power Fx-funksjoner og C# ReflectionFunction-implementeringer.

Alternativer for utvidelse

Organisasjoner har flere alternativer for å utvide testmotoren:

Bruke open source-versjonen

Power Apps Test Engine er tilgjengelig som et open source-prosjekt under MIT-lisensen. Førsteparts Microsoft, tredjepartsteam og organisasjoner kan:

  • Opprett nye leverandører for spesialiserte testscenarioer
  • Utvikle tilpassede godkjenningsmekanismer
  • Bygg nye C# ReflectionFunction-implementeringer
  • Opprett moduler som utvider kjernefunksjonaliteten
  • Send inn bidrag til vurdering i kjerneproduktet

Power Fx Brukerdefinerte funksjoner

For enklere scenarioer kan du opprette brukerdefinerte funksjoner direkte i testplanene dine:

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

Egendefinerte C# Power Fx -funksjoner med ReflectionFunction

For mer komplekse scenarioer kan organisasjoner utvikle egendefinerte C#-funksjoner ved å implementere ReflectionFunction klassen og registrere dem gjennom en 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...
}

Samarbeid med Test Engine-teamet

Organisasjoner som utvikler verdifulle utvidelser ved hjelp av open source Test Engine, kan vurdere å opprette en pull-forespørsel om utvidelser for å gjøre dem tilgjengelige i det offisielle produktet. Prosessen innebærer vanligvis:

  1. Utvikling – Opprett utvidelsen ved hjelp av open source testmotoren
  2. Validering – Test utvidelsen grundig i ditt eget miljø
  3. Samarbeid – Samarbeid med Core Test Engine-teamet for å evaluere utvidelsen
  4. Integration - Hvis godkjent, Microsoft signerer og integrerer utvidelsen i produktet

Denne samarbeidsmodellen muliggjør innovasjon samtidig som sikkerheten og påliteligheten til det offisielle Test Engine-produktet opprettholdes.

Tekniske integrasjonspunkter

Avsnittene nedenfor beskriver hvordan Test Engine-utvidbarhet integreres med kjerneteknologier som Playwright og funksjonslivssyklusen. Å forstå disse integreringspunktene hjelper deg med å utvikle og distribuere egendefinerte utvidelser effektivt.

Integrering av dramatiker

Power Apps testmotor er bygget oppå Playwright, som gir grunnlaget for nettleserautomatisering. Egendefinerte utvidelser kan samhandle med Playwrights IBrowserContext for å lage sofistikerte nettleserbaserte testfunksjoner.

Livssyklus for funksjoner

Nye utvidelser følger en funksjonslivssyklus:

  1. Forhåndsvisningsnavneområde – Nye utvidelser er først tilgjengelige i forhåndsvisningsnavneområdet for tidlig testing
  2. TestEngine-navneområde – Etter validering flyttes utvidelser til kjernenavneområdet TestEngine

Fordeler med utvidbarhetsmodellen

Utvidbarhetsmodellen gir betydelige fordeler:

  • Standardisering – Microsoft-signerte komponenter sikrer konsekvent kvalitet og sikkerhet
  • Innovation – den open source modellen gir mulighet for fellesskapsdrevet innovasjon
  • Fleksibilitet - Organisasjoner kan lage spesialiserte utvidelser for unike krav
  • Integrasjon - Verdifulle utvidelser vurderes for inkludering i det offisielle produktet