Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Модуль тестирования устарел и будет удален в будущем выпуске. Используйте примеры Power Platform Playwright для возможностей автоматизации тестирования в службах Power Platform и Dynamics 365.
Обзор
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
- Поставщик приложений на основе моделей — для тестирования Dataverse приложений на основе моделей
- Power Fx Провайдер - Для выполнения Power Fx выражений самостоятельно
- Portal Provider — для автоматизации операций в Power Apps
Дополнительные сведения см. в разделах Приложения Canvas, Приложения, управляемые моделями и Dataverse Расширения.
Power Fx расширения
Power Fx расширения добавляют новые возможности тестирования с помощью пользовательских функций.
- Пользовательские функции - низкокодовые функции, определенные в плане тестирования
- Реализации функций отражения в C# - Пользовательские функции, реализованные в модулях C#
Дополнительные сведения см. в разделах Функции Power Fx и Реализации ReflectionFunction в 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())
Пользовательские функции Power Fx на C# с использованием 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 с открытым исходным кодом, могут рассмотреть возможность создания запроса на включение своих расширений в официальный продукт, чтобы сделать их доступными. Процесс обычно включает в себя следующее:
- Разработка - Создайте свое расширение с помощью тестового движка с открытым исходным кодом
- Проверка - Тщательно протестируйте свое расширение в своей среде.
- Сотрудничество - Работайте с командой Core Test Engine для оценки расширения
- Интеграция - В случае одобрения Microsoft подписывает и интегрирует расширение в продукт.
Такая модель сотрудничества позволяет внедрять инновации, сохраняя при этом безопасность и надежность официального продукта Test Engine.
Технические точки интеграции
В следующих разделах описывается, как расширяемость Test Engine интегрируется с основными технологиями, такими как Playwright и жизненный цикл функций. Понимание этих точек интеграции поможет вам эффективно разрабатывать и развертывать пользовательские расширения.
Интеграция с Playwright
модуль тестирования Power Apps построен на основе Playwright, которая обеспечивает основу для автоматизации браузера. Пользовательские расширения могут взаимодействовать с IBrowserContext Playwright для создания сложных возможностей тестирования на основе браузера.
Жизненный цикл функции
Новые расширения следуют жизненному циклу функции:
- Пространство имен Preview - Новые расширения сначала доступны в пространстве имен Preview для предварительного тестирования.
- Пространство имен TestEngine - После проверки расширения перемещаются в основное пространство имен TestEngine.
Преимущества модели расширяемости
Модель расширяемости обеспечивает значительные преимущества:
- Стандартизация - Компоненты, подписанные Microsoft, обеспечивают стабильное качество и безопасность.
- Инновации - Модель с открытым исходным кодом позволяет создавать инновации, инициированные сообществом.
- Гибкость - Организации могут создавать специализированные расширения для уникальных требований.
- Интеграция - Ценные расширения рассматриваются для включения в официальный продукт.