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


Power Apps Тестовый движок Power Fx (предварительный просмотр)

Примечание.

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

Вы можете использовать Учебную площадку , чтобы опробовать функции, описанные в этом руководстве.

Что такое Power Fx?

Microsoft Power Fx — это малокодовый язык программирования общего назначения, основанный на формулах, подобных электронным таблицам. Это типизированный, декларативный, функциональный язык с императивной логикой и управлением состоянием, доступными по мере необходимости. Его история, связанная с Excel, делает его доступным для широкого круга пользователей: от новичков до опытных разработчиков.

Расширенные Power Fx сценарии

Если вы уже знакомы с Power Fx, изучение расширенных сценариев может значительно расширить возможности и эффективность ваших приложений. Вот некоторые продвинутые сценарии и почему они могут быть интересны:

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

  • Интеграция с внешними источниками данных: Интеграция Power Fx с внешними источниками данных позволяет вашим тестам взаимодействовать с широким спектром данных, от баз данных до веб-сервисов. Такая интеграция может улучшить функциональность ваших приложений, обеспечивая доступ к данным и обновлениям в режиме реального времени. Он также позволяет проводить более динамичные и гибкие тесты, способные адаптироваться к изменяющимся данным.

  • Оптимизация производительности для крупномасштабных тестов: по мере роста сложности и масштаба ваших тестов оптимизация производительности становится важной. Эти оптимизации могут включать производительность, такую как эффективная обработка данных и использование встроенных функций Power Fx для повышения производительности. Эти оптимизации гарантируют, что ваши тесты останутся отзывчивыми и эффективными даже при работе с большими наборами данных и сложной логикой.

Модель расширяемости

Модель Power Fxрасширяемости Test Engines является одной из ее многочисленных привлекательных особенностей. Вы можете расширить язык пользовательскими функциями и действиями, что делает его легко адаптируемым к различным сценариям. Вот некоторые ключевые аспекты модели расширяемости:

  • Повторно используйте уже имеющиеся у вас навыки: модель расширяемости Power Fx позволяет вам использовать имеющиеся у вас навыки в Power Fx и других языках программирования, таких как C#. Используя этот подход, вы можете применить свои знания и опыт в Power Fx базовых тестах, что упрощает создание мощных и индивидуальных решений.

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

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

  • Улучшение совместной работы и согласованности: команды могут создавать согласованный набор пользовательских функций и действий, которые можно совместно использовать и повторно использовать в различных проектах. Использование общего testSettings.yaml файла может способствовать совместной работе и гарантировать соблюдение передовых практик, что приводит к созданию более надежных и удобных в обслуживании приложений.

  • Упрощение интеграции с внешними системами: модель расширяемости обеспечивает бесшовную интеграцию с внешними системами и службами. Это означает, что вы можете подключать свои Power Fx приложения к широкому спектру источников данных и API, расширяя их возможности и обеспечивая доступ к данным в режиме реального времени.

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

Будучи разработчиком или продвинутым производителем, понимая и используя модель расширяемости, разработчики могут создавать более мощные, гибкие и удобные для пользователя приложения Power Fx. Эта модель не только расширяет возможности языка, но и делает его более доступным и ценным для более широкого круга пользователей.

Пользовательские типы

Пользовательские типы данных (UDT) в Power Apps Test Engine позволяют вам определять пользовательские структуры данных, которые можно использовать в ваших планах тестирования. Эта функция повышает гибкость и возможность повторного использования ваших тестовых случаев, позволяя создавать сложные типы данных, соответствующие вашим конкретным потребностям тестирования.

Пример UDT

В этом примере показано, как определять и использовать UDT в файле: testSettings.yaml

powerFxTestTypes:
 - name: ControlName
   value: |
      {ControlName: Text} 
 - name: Options
   value: |
      [{Name: Text, Value: Number}]   

Пояснение примера UDT

В разделе powerFxTestTypes определяются два новых типа: ControlName и Options.

  • ControlName — это простой тип с единственным свойством ControlName типа Text.
  • Options являются более сложным типом, представляющим собой список объектов, каждый из которых имеет Name (типа Text) и Value (типа Number).

Вы можете использовать эти типы в своих тестовых случаях для определения переменных и проверки их свойств. Например, вы можете задать переменную типа Options и проверить, что она содержит ожидаемые пары Name и Value .

Пользовательские функции

Пользовательские функции (UDF) в Power Apps Test Engine позволяют вам определять пользовательские функции, которые можно использовать в ваших планах тестирования. Эта функция повышает гибкость и возможность повторного использования ваших тестовых случаев, позволяя создавать сложные функции, соответствующие вашим конкретным потребностям тестирования.

Преимущества UDF

  • Повторное использование: UDF позволяют вам определить сложные функции один раз и повторно использовать их в нескольких тестовых случаях. Это снижает избыточность и обеспечивает согласованность ваших планов тестирования.
  • Удобочитаемость: использование пользовательских функций делает ваши планы тестирования более удобочитаемыми и простыми в обслуживании. Определяя пользовательские функции, вы можете инкапсулировать сложную логику и сделать ваши тестовые случаи более понятными.
  • Гибкость: пользовательские функции обеспечивают гибкость для создания пользовательских функций, соответствующих вашим конкретным требованиям к тестированию. Используйте этот подход, чтобы адаптировать тестовые случаи для лучшего соответствия потребностям вашего приложения.
  • Поддерживаемость: с помощью пользовательских функций изменения функций можно вносить в одном месте, что сокращает усилия, необходимые для обновления нескольких тестовых случаев. Это улучшает удобство поддержки ваших планов тестирования.

Пример UDF

В этом примере показано, как определять и использовать пользовательские функции в testSettings.yaml файле:

testFunctions:
 - description: Wait until control is visible using Document Object Model (DOM) selector
   code: |
    WaitUntilVisible(control: Text): Void = 
      Preview.PlaywrightAction(Concatenate("//div[@data-id='", control, "']"), "wait");
 - description: Get the options for a control using Power Fx control from Model Driven App (MDA)
   code: |
    GetOptions(control: ControlName): Options =
      Preview.GetOptions(control);

Пояснение примера UDF

В разделе testFunctions определяются две новые функции:

  • WaitUntilVisible принимает control параметр типа Text и ждет, пока указанный элемент управления не станет видимым с помощью селектора DOM.
  • GetOptions принимает control параметр типа ControlName и возвращает параметры для указанного элемента управления, используя Power Fx из приложения, управляемого моделью (MDA).

Используйте эти функции в тестовых случаях для выполнения определенных действий или извлечения данных. Например, можно использовать WaitUntilVisible для обеспечения видимости элемента управления перед взаимодействием с ним и GetOptions для извлечения и проверки доступных для элемента управления параметров.