Condividi tramite


Estensibilità del motore di test (anteprima)

Nota

Le funzionalità di anteprima non sono destinate ad essere utilizzate per la produzione e sono soggette a restrizioni. Vengono rese disponibili prima di una versione ufficiale in modo che i clienti possano accedervi con anticipo e fornire i loro commenti.

Descrizione

Power Apps Test Engine è dotato di un solido framework di estensibilità che consente di ampliare le funzionalità di test principali tramite vari punti di estensione. Questo articolo spiega:

  • Come Microsoft firma e convalida le estensioni proprietarie
  • Come funziona il modello di estensibilità utilizzando il Managed Extensibility Framework (MEF)
  • Opzioni per le organizzazioni di creare le proprie estensioni

Componenti firmati da Microsoft

Importante

Durante la fase di anteprima pubblica, il comando pac test run carica solo le estensioni firmate da Microsoft. Questa progettazione garantisce sicurezza, stabilità e prestazioni della piattaforma Test Engine.

Microsoft crea, firma e convalida i componenti proprietari per garantire che soddisfino gli standard di qualità e sicurezza. Questi componenti includono:

  • Fornitori di autenticazione di base
  • Fornitori di app canvas e app basate su modelli
  • Funzioni e azioni standard Power Fx

Framework di estensibilità (MEF)

Test Engine utilizza il Managed Extensibility Framework (MEF) per abilitare un'architettura collegabile. Questo framework consente tre tipi principali di estensioni:

Estensioni di autenticazione

Le estensioni di autenticazione consentono diverse modalità di autenticazione con Power Platform:

  • Autenticazione dello stato di archiviazione - Metodo di autenticazione predefinito basato sul browser
  • Autenticazione basata su certificato - Per l'esecuzione di test non interattivi
  • Provider di autenticazione personalizzati - Per scenari di autenticazione specializzati

Per ulteriori informazioni, vedere Autenticazione nel motore di test.

Estensioni del provider

Le estensioni del provider consentono di testare diversi tipi di applicazioni:

  • Fornitore di app Canvas - Per testare Power Apps le applicazioni canvas
  • Fornitore di app basate su modelli - Per testare Dataverse app basate su modelli
  • Power Fx Provider - Per eseguire Power Fx istruzioni in modo indipendente
  • Fornitore del portale - Per automatizzare le operazioni in Power Apps

Per ulteriori informazioni, vedere Applicazioni Canvas, Applicazioni basate su modelli ed Dataverse Estensioni.

Power Fx estensioni

Power Fx le estensioni aggiungono nuove capacità di test tramite funzioni personalizzate:

  • Funzioni definite dall'utente - Funzioni a basso codice definite nel piano di test
  • Implementazioni di ReflectionFunction in C# - Funzioni personalizzate implementate nei moduli C#

Per ulteriori informazioni, vedere Power Fx Funzioni e Implementazioni di ReflectionFunction in C#.

Opzioni di sviluppo dell'estensione

Le organizzazioni hanno diverse opzioni per estendere Test Engine:

Utilizzo della versione open source

Il Power Apps Test Engine è disponibile come progetto open source con licenza MIT. Microsoft proprietaria, team di terze parti e organizzazioni possono:

  • Creare nuovi provider per scenari di test specializzati
  • Sviluppare meccanismi di autenticazione personalizzati
  • Creare nuove implementazioni di ReflectionFunction in C#
  • Creare moduli che estendono le funzionalità principali
  • Inviare contributi da prendere in considerazione nel prodotto principale

Power Fx funzioni definite dall'utente

Per scenari più semplici, è possibile creare funzioni definite dall'utente direttamente nei piani di test:

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

Funzioni C# Power Fx personalizzate con ReflectionFunction

Per scenari più complessi, le organizzazioni possono sviluppare funzioni C# personalizzate implementando la classe e registrandole tramite un modulo: ReflectionFunction

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

Collaborazione con il team Test Engine

Le organizzazioni che sviluppano estensioni di valore utilizzando il Test Engine open source possono prendere in considerazione la creazione di una richiesta pull per le loro estensioni, per renderle disponibili nel prodotto ufficiale. Il processo in genere prevede:

  1. Sviluppo - Crea la tua estensione utilizzando il motore di test open source
  2. Validazione - Testa attentamente la tua estensione nel tuo ambiente
  3. Collaborazione - Collaborare con il team Core Test Engine per valutare l'estensione
  4. Integrazione - Se approvata, Microsoft firma e integra l'estensione nel prodotto

Questo modello di collaborazione consente l'innovazione mantenendo la sicurezza e l'affidabilità del prodotto ufficiale Test Engine.

Punti di integrazione tecnica

Le sezioni seguenti descrivono come l'estendibilità del Test Engine si integra con tecnologie fondamentali quali Playwright e il ciclo di vita delle funzionalità. La comprensione di questi punti di integrazione ti aiuterà a sviluppare e distribuire estensioni personalizzate in modo efficace.

Integrazione del drammaturgo

Power Apps Test Engine è basato su Playwright, che fornisce le basi per l'automazione del browser. Le estensioni personalizzate possono interagire con IBrowserContext di Playwright per creare sofisticate funzionalità di test basate sul browser.

Ciclo di vita delle funzionalità

Le nuove estensioni seguono un ciclo di vita delle funzionalità:

  1. Anteprima dello spazio dei nomi - Le nuove estensioni sono disponibili inizialmente nello spazio dei nomi Anteprima per i test iniziali
  2. Namespace TestEngine - Dopo la convalida, le estensioni vengono spostate nello spazio dei nomi TestEngine principale

Vantaggi del modello di estensibilità

Il modello di estensibilità offre vantaggi significativi:

  • Standardizzazione - I componenti firmati da Microsoft garantiscono qualità e sicurezza coerenti
  • Innovazione - Il modello open source consente l'innovazione guidata dalla comunità
  • Flessibilità - Le organizzazioni possono creare estensioni specializzate per requisiti unici
  • Integrazione - Le estensioni di valore sono considerate per l'inclusione nel prodotto ufficiale