Extensibilidade do motor de proba (obsoleto)

Nota

Test Engine está obsoleto e será eliminado nunha versión futura. Usa exemplos Power Platform Playwright para capacidades de automatización de probas en Power Platform e servizos Dynamics 365.

Visión xeral

Power Apps Test Engine conta cun robusto marco de extensibilidade que permite ampliar as capacidades principais de proba a través de varios puntos de extensión. Este artigo explica:

  • Como Microsoft asina e valida as extensións de primeira parte
  • Como funciona o modelo de extensibilidade usando o Marco de Extensibilidade Xestionado (MEF)
  • Opcións para que as organizacións creen as súas propias extensións

Compoñentes asinados por Microsoft

Importante

Durante a fase de previsualización pública, o comando pac test run só carga extensións asinadas Microsoft. Este deseño garante a seguridade, a estabilidade e o rendemento da plataforma Test Engine.

Microsoft constrúe, asina e valida compoñentes de primeira parte para garantir que cumpren cos estándares de calidade e seguridade. Estes compoñentes inclúen:

  • Provedores principais de autenticación
  • Provedores de aplicacións de lenzo e aplicacións baseadas en modelos
  • Funcións e accións estándar Power Fx

Marco de extensibilidade (MEF)

O motor de probas usa o Marco de extensibilidade xestionado (MEF) para habilitar unha arquitectura conectable. Esta estrutura permite tres tipos principais de extensións:

Extensións de autenticación

As extensións de autenticación permiten diferentes xeitos de autenticarse con Power Platform:

  • Autenticación do estado de almacenamento : o método de autenticación predeterminado baseado no navegador
  • Autenticación baseada en certificados - Para a execución de probas non interactivas
  • Provedores de autenticación personalizados : para escenarios de autenticación especializados

Para obter máis información, consulte Autenticación no motor de probas.

Extensións de provedores

As extensións do provedor permiten probar diferentes tipos de aplicacións:

  • Canvas App Provider - Para probar Power Apps aplicacións canvas
  • Provedor de aplicacións baseadas en modelos - Para probar Dataverse aplicacións baseadas en modelos
  • Power Fx Provedor - Para executar Power Fx instrucións de forma independente
  • Portal Provider - Para automatizar operacións en Power Apps

Para obter máis información, consulte Aplicacións de Canvas, Aplicacións baseadas en modelos e Dataverse Extensións.

Power Fx extensións

Power Fx as extensións engaden novas capacidades de proba a través de funcións personalizadas:

  • Funcións definidas polo usuario - Funcións de código baixo definidas no plan de probas
  • Implementacións de ReflectionFunction en C# : funcións personalizadas implementadas en módulos de C#

Para obter máis información, consulte Power Fx Funcións e Implementacións de ReflectionFunction en C#.

Opcións de desenvolvemento de extensións

As organizacións teñen varias opcións para estender o motor de probas:

Uso da versión open source

O Power Apps Test Engine está dispoñible como proxecto open source baixo a licenza do MIT. Microsoft de primeira parte, equipos de terceiros e organizacións poden:

  • Crear novos provedores para escenarios de probas especializadas
  • Desenvolver mecanismos de autenticación personalizados
  • Crear novas implementacións de ReflectionFunction en C#
  • Crear módulos que amplíen a funcionalidade principal
  • Enviar contribucións para a súa consideración no produto principal

Power Fx funcións definidas polo usuario

Para escenarios máis sinxelos, podes crear funcións definidas polo usuario directamente nos teus plans de proba:

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

Funcións C# personalizadas con ReflectionFunction Power Fx

Para escenarios máis complexos, as organizacións poden desenvolver funcións C# personalizadas implementando a clase ReflectionFunction e rexistrándoas a través dun módulo:

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

Colaboración co equipo do motor de probas

As organizacións que desenvolven extensións valiosas usando o Test Engine open source poden considerar crear unha solicitude de tirada para as súas extensións que as poñan dispoñibles no produto oficial. O proceso normalmente implica:

  1. Development - Crea a túa extensión usando o open source Test Engine
  2. Validación - Proba a túa extensión exhaustivamente no teu propio entorno
  3. Colaboración - Traballar co equipo principal do motor de probas para avaliar a extensión
  4. Integración - Se se aproba, Microsoft asina e integra a extensión no produto

Este modelo de colaboración permite a innovación mantendo a seguridade e a fiabilidade do produto oficial Test Engine.

Puntos de integración técnica

As seguintes seccións describen como se integra a extensibilidade de Test Engine con tecnoloxías básicas como Playwright e o ciclo de vida das funcionalidades. Comprender estes puntos de integración axudarache a desenvolver e implementar extensións personalizadas de forma eficaz.

Integración de dramaturgos

Power Apps Motor de Proba está construído sobre Playwright, que proporciona a base para a automatización do navegador. As extensións personalizadas poden interactuar co *IBrowserContext* de Playwright para crear funcións de probas sofisticadas baseadas no navegador. ...

Ciclo de vida das características

As novas extensións seguen un ciclo de vida das funcionalidades:

  1. Espazo de nomes de vista previa : as novas extensións están dispoñibles primeiro no espazo de nomes de vista previa para as primeiras probas
  2. Espazo de nomes TestEngine : despois da validación, as extensións móvense ao espazo de nomes principal de TestEngine

Vantaxes do modelo de extensibilidade

O modelo de extensibilidade ofrece vantaxes significativas:

  • Estandarización - Os compoñentes asinados Microsoft aseguran unha calidade e seguridade consistentes
  • Innovación - O modelo open source permite a innovación impulsada pola comunidade
  • Flexibilidade - As organizacións poden crear extensións especializadas para requisitos únicos
  • Integración - Considéranse extensións valiosas para a súa inclusión no produto oficial