Поделиться через


Расширяемость Test Engine (предварительный просмотр)

Примечание.

Предварительные версии функций не предназначены для использования в производственной среде, а их функциональность может быть ограничена. Они доступны перед официальным выпуском, чтобы клиенты могли досрочно получить доступ и предоставить отзывы.

Обзор

Power Apps Test Engine обладает надежной инфраструктурой расширяемости, которая позволяет расширять основные возможности тестирования с помощью различных точек расширения. В этой статье объясняется:

  • Как Microsoft подписывает и проверяет собственные расширения
  • Как работает модель расширяемости с использованием Managed Extensibility Framework (MEF)
  • Возможности для организаций создавать собственные расширения

Компоненты, подписанные Microsoft

Внимание!

На этапе публичного предварительного просмотра команда pac test run загружает только расширения, подписанные Microsoft. Такая конструкция обеспечивает безопасность, стабильность и производительность платформы Test Engine.

Microsoft создает, подписывает и проверяет компоненты собственной разработки, чтобы гарантировать их соответствие стандартам качества и безопасности. Эти компоненты включают в себя:

  • Основные поставщики аутентификации
  • Поставщики приложений Canvas и приложений на основе моделей
  • Стандартные Power Fx функции и действия

Фреймворк расширяемости (MEF)

Тестовый движок использует Managed Extensibility Framework (MEF) для реализации подключаемой архитектуры. Эта структура допускает три основных типа расширений:

Расширения аутентификации

Расширения аутентификации позволяют использовать различные способы аутентификации с помощью Power Platform:

  • Аутентификация состояния хранилища — метод аутентификации по умолчанию на основе браузера.
  • Аутентификация на основе сертификатов — для неинтерактивного выполнения тестов
  • Поставщики пользовательских служб аутентификации — для специализированных сценариев аутентификации

Для получения дополнительной информации см. раздел Аутентификация в тестовом движке.

Расширения провайдера

Расширения провайдера позволяют тестировать различные типы приложений:

  • Поставщик приложений Canvas — для тестирования Power Apps приложений Canvas
  • Поставщик приложений на основе моделей — для тестирования Dataverse приложений на основе моделей
  • Power Fx Поставщик - Для выполнения Power Fx заявлений независимо
  • Поставщик портала - Для автоматизации операций в Power Apps

Дополнительные сведения см. в разделах Приложения Canvas, Приложения, управляемые моделями и Dataverse Расширения.

Power Fx расширения

Power Fx Расширения добавляют новые возможности тестирования с помощью пользовательских функций:

  • Пользовательские функции - низкокодовые функции, определенные в плане тестирования
  • Реализации функций отражения в C# - Пользовательские функции, реализованные в модулях C#

Дополнительные сведения см. в разделах Power Fx Функции и Реализации функций Reflection в C#.

Варианты развития расширений

У организаций есть несколько вариантов расширения Test Engine:

Использование версии с открытым исходным кодом

Power Apps Test Engine доступен как проект с открытым исходным кодом по лицензии MIT. Собственные компании Microsoft, сторонние команды и организации могут:

  • Создайте новых поставщиков для специализированных сценариев тестирования
  • Разработать собственные механизмы аутентификации
  • Создание новых реализаций ReflectionFunction на C#
  • Создавайте модули, расширяющие основные функции
  • Подайте заявку на рассмотрение в основном продукте

Power Fx пользовательские функции

Для более простых сценариев вы можете создавать пользовательские функции непосредственно в планах тестирования:

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

Пользовательские функции C# Power Fx с ReflectionFunction

Для более сложных сценариев организации могут разрабатывать собственные функции C#, реализовав 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...
}

Сотрудничество с командой Test Engine

Организации, разрабатывающие ценные расширения с использованием Test Engine с открытым исходным кодом, могут рассмотреть возможность создания запроса на включение своих расширений в официальный продукт, чтобы сделать их доступными. Процесс обычно включает в себя:

  1. Разработка - Создайте свое расширение с помощью тестового движка с открытым исходным кодом
  2. Проверка - Тщательно протестируйте свое расширение в своей среде.
  3. Сотрудничество - Работайте с командой Core Test Engine для оценки расширения
  4. Интеграция - В случае одобрения Microsoft подписывает и интегрирует расширение в продукт.

Такая модель сотрудничества позволяет внедрять инновации, сохраняя при этом безопасность и надежность официального продукта Test Engine.

Технические точки интеграции

В следующих разделах описывается, как расширяемость Test Engine интегрируется с основными технологиями, такими как Playwright и жизненный цикл функций. Понимание этих точек интеграции поможет вам эффективно разрабатывать и развертывать пользовательские расширения.

Интеграция драматурга

Power Apps Тестовый движок создан на основе Playwright, который обеспечивает основу для автоматизации браузера. Пользовательские расширения могут взаимодействовать с IBrowserContext Playwright для создания сложных возможностей тестирования на основе браузера.

Жизненный цикл функции

Новые расширения следуют жизненному циклу функции:

  1. Пространство имен Preview - Новые расширения сначала доступны в пространстве имен Preview для предварительного тестирования.
  2. Пространство имен TestEngine - После проверки расширения перемещаются в основное пространство имен TestEngine.

Преимущества модели расширяемости

Модель расширяемости обеспечивает значительные преимущества:

  • Стандартизация - Компоненты, подписанные Microsoft, обеспечивают стабильное качество и безопасность.
  • Инновации - Модель с открытым исходным кодом позволяет создавать инновации, инициированные сообществом.
  • Гибкость - Организации могут создавать специализированные расширения для уникальных требований.
  • Интеграция - Ценные расширения рассматриваются для включения в официальный продукт.