Partilhar via


Extensibilidade do mecanismo de teste (visualização)

Nota

As funcionalidades de pré-visualização não se destinam à produção e poderão ter caraterísticas restritas. Estas caraterísticas estão disponíveis antes do lançamento oficial, para que os clientes possam ter acesso antecipado e enviar comentários.

Descrição geral

Power Apps O Test Engine apresenta uma estrutura de extensibilidade robusta que permite que os principais recursos de teste sejam expandidos através de vários pontos de extensão. Este artigo explica:

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

Componentes assinados pela Microsoft

Importante

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

A Microsoft cria, assina e valida componentes primários para garantir que eles atendam aos padrões de qualidade e segurança. Esses componentes incluem:

  • Provedores de autenticação principais
  • Aplicativo de tela e provedores de aplicativos orientados por modelo
  • Funções e ações padrão Power Fx

Quadro de extensibilidade (MEF)

O mecanismo de teste usa o Managed Extensibility Framework (MEF) para habilitar uma arquitetura conectá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 do Estado de Armazenamento - O método de autenticação padrão baseado em navegador
  • Autenticação baseada em certificado - Para execução de teste não interativa
  • 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 fornecedor

As extensões de fornecedor permitem testar diferentes tipos de aplicativos:

  • Canvas App Provider - Para testar Power Apps aplicativos de tela
  • Provedor de aplicativos orientado por modelo - Para testar Dataverse aplicativos controlados por modelo
  • Power Fx Provedor - Para executar Power Fx declarações de forma independente
  • Portal Provider - Para automatizar operações em Power Apps

Para obter mais informações, consulte Aplicativos de tela, Aplicativos controlados por modelo e Dataverse Extensões.

Power Fx Extensões

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

  • Funções definidas pelo utilizador - Funções low-code definidas no plano de teste
  • Implementações C# ReflectionFunction - Funções personalizadas implementadas em módulos C#

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

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 de código aberto

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

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

Power Fx funções definidas pelo utilizador

Para cenários mais simples, você pode criar funções definidas pelo utilizador 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 C# Power Fx personalizadas com ReflectionFunction

Para cenários mais complexos, as organizações podem desenvolver funções C# personalizadas implementando a ReflectionFunction classe 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 equipa do Test Engine

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

  1. Desenvolvimento - Crie sua extensão usando o mecanismo de teste de código aberto
  2. Validação - Teste sua extensão completamente em seu próprio ambiente
  3. Colaboração - Trabalhe com a equipa do Core Test Engine para avaliar a extensão
  4. Integração - Se aprovada, a Microsoft assina e integra a extensão no produto

Este modelo de colaboração permite a inovação, mantendo a segurança e a fiabilidade do produto oficial 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 do recurso. Compreender esses pontos de integração ajuda você a desenvolver e implantar extensões personalizadas de forma eficaz.

Integração com dramaturgos

Power Apps O Test Engine é construído com base no Playwright , que fornece a base para a automação donavegador. As extensões personalizadas podem interagir com o IBrowserContext do Playwright para criar recursos sofisticados de teste baseados em navegador.

Ciclo de vida do recurso

As novas extensões seguem um ciclo de vida dorecurso:

  1. Preview Namespace - Novas extensões estão disponíveis pela primeira vez no namespace Preview para testes iniciais
  2. TestEngine Namespace - Após a validação, as extensões são movidas para o namespace TestEngine principal

Benefícios do modelo de extensibilidade

O modelo de extensibilidade oferece benefícios significativos:

  • Padronização - componentes assinados pela Microsoft garantem qualidade e segurança consistentes
  • Inovação - O modelo de código aberto permite a inovação impulsionada 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