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


Тест розтяжності двигуна (попередній перегляд)

Нотатка

Підготовчі функції призначені для невиробничого використання і можуть бути обмежені. Ці функції доступні до офіційного випуску, щоб клієнти могли ознайомитися з ними заздалегідь і залишити відгуки.

Зведення

Power Apps Test Engine має надійну структуру розширюваності, яка дозволяє розширювати основні можливості тестування за допомогою різних точок розширення. У цій статті пояснюється:

  • Як корпорація Майкрософт підписує та перевіряє власні розширення
  • Як працює модель розширюваності з використанням Managed Extensibility Framework (MEF)
  • Варіанти створення організаціями власних розширень

Компоненти, підписані корпорацією Майкрософт

Важливо

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

Корпорація Майкрософт створює, підписує та перевіряє власні компоненти, щоб гарантувати, що вони відповідають стандартам якості та безпеки. До таких компонентів належать:

  • Основні постачальники автентифікації
  • Постачальники програм на основі Canvas і моделей
  • Стандартні Power Fx функції та дії

Рамкова розширюваність (MEF)

Test Engine використовує Managed Extensibility Framework (MEF) для забезпечення архітектури, що підключається. Цей фреймворк дозволяє три основні типи розширень:

Розширення автентифікації

Розширення автентифікації дають змогу автентифікуватися за допомогою таких способів Power Platform:

  • Автентифікація стану сховища – метод автентифікації на основі браузера за замовчуванням
  • Автентифікація на основі сертифіката - Для виконання неінтерактивних тестів
  • Постачальники користувацької автентифікації - для спеціалізованих сценаріїв автентифікації

Щоб отримати докладнішу інформацію, перегляньте статтю Автентифікація в Test Engine.

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

Розширення провайдера дозволяють тестувати різні типи додатків:

  • Постачальник додатків Canvas - для тестування Power Apps додатків на полотні
  • Постачальник додатків на основі моделі - для тестування Dataverse додатків на основі моделі
  • Power Fx Провайдер- Для самостійного Power Fx виконання виписок
  • Постачальник порталу - Для автоматизації операцій в Power Apps

Щоб отримати додаткові відомості, перегляньте статті Програми на полотні, Програми, керовані моделлю, і Dataverse Розширення.

Power Fx Розширення

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

  • Функції , визначені користувачем - Low-code функції, визначені в тестовому плані
  • Реалізації функцій відображення C# - Користувацькі функції, реалізовані в модулях C#

Для отримання додаткової інформації дивіться Power Fx Функції та реалізації C# ReflectionFunction.

Варіанти розробки розширень

Організації мають кілька варіантів розширення Test Engine:

Використання версії з відкритим вихідним кодом

Test Power Apps Engine доступний як проект з відкритим вихідним кодом за ліцензією MIT. Корпорація Майкрософт, сторонні команди та організації можуть:

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

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. Інтеграція : у разі схвалення корпорація Майкрософт підписує та інтегрує розширення в продукт

Ця модель співпраці дозволяє впроваджувати інновації, зберігаючи при цьому безпеку та надійність офіційного продукту Test Engine.

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

У наступних розділах описано, як розширюваність тестового двигуна інтегрується з основними технологіями, такими як Playwright, і життєвий цикл функцій. Розуміння цих аспектів інтеграції допоможе вам ефективно розробляти та впроваджувати власні розширення.

Інтеграція з драматургом

Power Apps Test Engine побудований на основі Playwright, що забезпечує основу для автоматизації браузера. Користувацькі розширення можуть взаємодіяти з IBrowserContext від Playwright , створюючи складні можливості тестування на основі браузера.

Життєвий цикл функцій

Нові розширення відповідають життєвому циклу функцій:

  1. Простір імен попереднього перегляду – нові розширення вперше доступні в просторі імен Preview для раннього тестування.
  2. Простір імен TestEngine – після перевірки розширення переміщуються до основного простору імен TestEngine.

Переваги моделі розтяжності

Модель розтяжності дає значні переваги:

  • Стандартизація – компоненти, підписані Microsoft, забезпечують стабільну якість і безпеку
  • Інновації - Модель відкритого вихідного коду дозволяє впроваджувати інновації, керовані спільнотою
  • Гнучкість - Організації можуть створювати спеціалізовані розширення для унікальних вимог
  • Інтеграція - Цінні розширення розглядаються для включення в офіційний продукт