Partager via


Extensibilité de Test Engine (version préliminaire)

Nonte

Les fonctionnalités en version préliminaire ne sont pas destinées à une utilisation en production et peuvent être restreintes. Ces fonctionnalités sont disponibles avant une version officielle afin que les clients puissent obtenir un accès anticipé et fournir des commentaires.

Résumé

Power Apps Test Engine dispose d’un cadre d’extensibilité robuste qui permet d’étendre les fonctionnalités de test de base via divers points d’extension. Cet article explique :

  • Comment Microsoft signe et valide les extensions propriétaires
  • Fonctionnement du modèle d’extensibilité à l’aide de Managed Extensibility Framework (MEF)
  • Options permettant aux organisations de créer leurs propres extensions

Composants signés par Microsoft

Important

Pendant la phase de version préliminaire publique, la commande pac test run ne charge que les extensions signées Microsoft. Cette conception garantit la sécurité, la stabilité et les performances de la plate-forme Test Engine.

Microsoft crée, signe et valide les composants propriétaires pour s’assurer qu’ils répondent aux normes de qualité et de sécurité. Ces composants incluent :

  • Fournisseurs d’authentification de base
  • Fournisseurs d'applications canevas et d'applications pilotées par modèle
  • Fonctions et actions standard Power Fx

Cadre d’extensibilité (MEF)

Test Engine utilise le Managed Extensibility Framework (MEF) pour activer une architecture enfichable. Ce cadre autorise trois principaux types d’extensions :

Extensions d’authentification

Les extensions d’authentification permettent différentes façons de s’authentifier avec Power Platform :

  • Authentification de l’état de stockage : méthode d’authentification par défaut basée sur un navigateur
  • Authentification basée sur le certificat : pour l’exécution de tests non interactifs
  • Fournisseurs d’authentification personnalisés : pour des scénarios d’authentification spécialisés

Pour plus d’informations, voir Authentification dans Test Engine.

Extensions de fournisseur

Les extensions de fournisseur permettent de tester différents types d’applications :

  • Fournisseur d'application canevas - Pour les tests d'applications canevas Power Apps
  • Fournisseur d'application pilotée par modèle - Pour tester des applications pilotées par modèle Dataverse
  • Fournisseur Power Fx - Pour l’exécution d’instructions Power Fx indépendamment
  • Fournisseur de portail - Pour automatiser les opérations dans Power Apps

Pour plus d’informations, voir Applications canevas, Applications pilotées par modèle et Extensions Dataverse.

Extensions Power Fx

Les extensions Power Fx ajoutent de nouvelles capacités de test grâce à des fonctions personnalisées :

  • Fonctions définies par l’utilisateur : fonctions low-code définies dans le plan de test
  • Implémentations C# ReflectionFunction - Fonctions personnalisées implémentées dans les modules C#

Pour plus d’informations, voir Fonctions Power Fx et Implémentations C# ReflectionFunction.

Options d'extension pour le développement

Les organisations disposent de plusieurs options pour étendre Test Engine :

Utilisation de la version open source

Power Apps Test Engine est disponible en tant que projet open source sous la licence MIT. Les équipes internes de Microsoft, les équipes tierces et les organisations peuvent :

  • Créer de nouveaux fournisseurs pour des scénarios de test spécialisés
  • Développer des mécanismes d’authentification personnalisés
  • Créer de nouvelles implémentations C# ReflectionFunction
  • Créer des modules qui étendent les fonctionnalités de base
  • Envoyer des contributions à prendre en compte dans le produit de base

Fonctions Power Fx définies par l’utilisateur

Pour des scénarios plus simples, vous pouvez créer des fonctions définies par l’utilisateur directement dans vos plans de 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())

Fonctions C# Power Fx personnalisées avec ReflectionFunction

Pour les scénarios plus complexes, les organisations peuvent développer des fonctions C# personnalisées en implémentant la classe ReflectionFunction et en les inscrivant via un module :

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

Collaboration avec l’équipe Test Engine

Les organisations qui développent des extensions précieuses à l’aide de Test Engine open source peuvent envisager de créer une demande d’extraction pour leurs extensions afin de les rendre disponibles dans le produit officiel. Le processus implique généralement :

  1. Développement : créez votre extension à l’aide du Test Engine open source
  2. Validation : testez votre extension de manière approfondie dans votre propre environnement
  3. Collaboration : travailler avec l’équipe Core Test Engine pour évaluer l’extension
  4. Intégration : si elle est approuvée, Microsoft signe et intègre l’extension dans le produit

Ce modèle de collaboration permet d’innover tout en préservant la sécurité et la fiabilité du produit officiel Test Engine.

Points d'intégration technique

Les sections suivantes décrivent comment l’extensibilité de Test Engine s’intègre aux technologies de base telles que Playwright et le cycle de vie des fonctionnalités. La compréhension de ces points d’intégration vous aide à développer et à déployer efficacement des extensions personnalisées.

Intégration de Playwright

Power Apps Test Engine est basé sur Playwright, qui constitue la base de l’automatisation du navigateur. Les extensions personnalisées peuvent interagir avec IBrowserContext de Playwright pour créer des fonctionnalités de test sophistiquées basées sur un navigateur.

Cycle de vie de la fonctionnalité

Les nouvelles extensions suivent un cycle de vie de fonctionnalité :

  1. Espace de noms Aperçu : les nouvelles extensions sont d’abord disponibles dans l’espace de noms Aperçu pour des tests anticipés
  2. Espace de noms TestEngine : après validation, les extensions sont déplacées vers l’espace de noms principal de TestEngine

Avantages du modèle d'extensibilité

Le modèle d’extensibilité offre des avantages significatifs :

  • Standardisation : les composants signés Microsoft garantissent une qualité et une sécurité constantes
  • Innovation : le modèle open source permet l’innovation axée sur la communauté
  • Flexibilité : les organisations peuvent créer des extensions spécialisées pour des besoins uniques
  • Intégration : des extensions précieuses sont envisagées pour être incluses dans le produit officiel