Extensibilidade do Mecanismo de Teste (preterida)

Observação

O Mecanismo de Teste foi preterido e será removido em uma versão futura. Use exemplos Power Platform Playwright para testar recursos de automação no Power Platform e serviços de Dynamics 365.

Visão geral

Power Apps Mecanismo de Teste apresenta uma estrutura de extensibilidade robusta que permite que os principais recursos de teste sejam expandidos por meio de vários pontos de extensão. Este artigo explica:

  • Como Microsoft assina e valida extensões de primeira parte
  • Como o modelo de extensibilidade funciona usando o Managed Extensibility Framework (MEF)
  • Opções para organizações criarem suas próprias extensões

componentes assinados por Microsoft

Importante

Durante a fase de visualização pública, o comando pac test run carrega apenas extensões assinadas por Microsoft. Este design garante segurança, estabilidade e desempenho da plataforma Test Engine.

Microsoft compila, assina e valida componentes de primeira parte para garantir que eles atendam aos padrões de qualidade e segurança. Esses componentes incluem:

  • Provedores de autenticação de núcleo
  • Provedores de aplicativos Canvas e aplicativos baseados em modelos
  • Funções e ações padrão Power Fx

Estrutura de extensibilidade (MEF)

O Test Engine usa o Managed Extensibility Framework (MEF) para habilitar uma arquitetura plugável. Esta estrutura permite três tipos principais de extensões:

Extensões de autenticação

As extensões de autenticação permitem diferentes maneiras de autenticação com Power Platform:

  • Autenticação de estado de armazenamento - O método de autenticação padrão baseado em navegador
  • Autenticação baseada em certificado - Para execução de testes não interativos
  • Provedores de autenticação personalizados - Para cenários de autenticação especializados

Para obter mais informações, consulte Autenticação no mecanismo de teste.

Extensões de provedores

As extensões do provedor permitem testar diferentes tipos de aplicativos:

  • Canvas App Provider – Para testar aplicativos de tela Power Apps
  • Provedor de aplicativos orientados a modelos - Para testar Dataverse aplicativos orientados a modelos
  • Power Fx Provedor - Para executar Power Fx instruções de forma independente
  • Portal Provider – Para automatizar operações no Power Apps

Para obter mais informações, consulte Aplicativos Canvas, Aplicativos orientados a modelos e Dataverse Extensões.

Power Fx extensões

Power Fx extensões adicionam novos recursos de teste por meio de funções personalizadas:

  • Funções definidas pelo usuário - Funções de baixo código definidas no plano de teste
  • Implementações de ReflectionFunction em C# - Funções personalizadas implementadas em módulos C#

Para obter mais informações, consulte Funções do Power Fx e Implementações de ReflectionFunction de C#.

Opções de desenvolvimento de extensão

As organizações têm várias opções para estender o Test Engine:

Usando a versão código aberto

O Power Apps Test Engine está disponível como um projeto de código aberto sob a licença do MIT. Equipes próprias da Microsoft, equipes de terceiros e organizações podem:

  • Crie novos provedores para cenários de testes especializados
  • Desenvolver mecanismos de autenticação personalizados
  • Crie novas implementações de ReflectionFunction em C#
  • Crie módulos que estendam a funcionalidade principal
  • Enviar contribuições para consideração no produto principal

Power Fx funções definidas pelo usuário

Para cenários mais simples, você pode criar funções definidas pelo usuário diretamente em seus planos de teste:

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

Funções personalizadas de C# Power Fx com ReflectionFunction

Para cenários mais complexos, as organizações podem desenvolver funções C# personalizadas implementando a classe ReflectionFunction e registrando-as por meio de um 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...
}

Colaboração com a equipe do Test Engine

As organizações que desenvolvem extensões valiosas usando o mecanismo de teste código aberto podem considerar a criação de uma solicitação de pull para suas extensões para disponibilizá-las no produto oficial. O processo normalmente envolve:

  1. Development – Criar sua extensão usando o mecanismo de teste código aberto
  2. Validação - Teste sua extensão completamente em seu próprio ambiente
  3. Colaboração - Trabalhar com a equipe do Core Test Engine para avaliar a extensão
  4. Integration - Se aprovado, Microsoft assina e integra a extensão ao produto

Este modelo de colaboração permite inovação ao mesmo tempo que mantém a segurança e a confiabilidade do produto oficial do Test Engine.

Pontos de integração técnica

As seções a seguir descrevem como a extensibilidade do Test Engine se integra às principais tecnologias, como o Playwright e o ciclo de vida dos recursos. Entender esses pontos de integração ajuda você a desenvolver e implantar extensões personalizadas de forma eficaz.

Integração de dramaturgos

Power Apps Motor de Teste é construído sobre Playwright, que fornece o fundamento para a automação do navegador. Extensões personalizadas podem interagir com o IBrowserContext do Playwright para criar recursos sofisticados de teste baseados em navegador. ...

Ciclo de vida da funcionalidade

Novas extensões seguem um Ciclo de Vida da Funcionalidade:

  1. Namespace da Versão Preliminar - Novas extensões estão disponíveis primeiro no namespace da Versão preliminar para testes iniciais
  2. Namespace TestEngine - Após a validação, as extensões são movidas para o namespace principal do TestEngine

Benefícios do modelo de extensibilidade

O modelo de extensibilidade oferece benefícios significativos:

  • Standardization – componentes assinados por Microsoft garantem uma qualidade e segurança consistentes
  • Innovation - O modelo código aberto permite inovação orientada pela comunidade
  • Flexibilidade - As organizações podem criar extensões especializadas para requisitos exclusivos
  • Integração - Extensões valiosas são consideradas para inclusão no produto oficial