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


Power Apps Тестовий двигун Power Fx (попередній перегляд)

Нотатка

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

Ви можете скористатися Learning Playground , щоб спробувати функції, описані в цьому посібнику.

Що таке Power Fx?

Microsoft Power Fx — це мова програмування загального призначення з низьким кодом, заснована на формулах, схожих на електронні таблиці. Це типізована, декларативна, функціональна мова, з імперативною логікою та управлінням станами, доступними за потреби. Його історія з Excel робить його доступним для широкого кола користувачів, від початківців до досвідчених розробників.

Просунуті Power Fx сценарії

Якщо ви вже знайомі з Power Fx цим, занурення в складні сценарії може значно розширити можливості та ефективність ваших програм. Ось кілька складних сценаріїв і чому вони можуть зацікавити:

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

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

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

Модель розтяжності

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

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

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

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

  • Покращуйте співпрацю та узгодженість: Teams може створювати узгоджений набір користувацьких функцій і дій, якими можна ділитися та повторно використовувати в різних проектах. Використання спільного 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 type Text.
  • Options є більш складним типом, що представляє список об’єктів, кожен з яких ( Name типу) та Text (типу ValueNumber).

Ви можете використовувати ці типи у своїх тестових випадках для визначення змінних та перевірки їхніх властивостей. Наприклад, ви можете встановити змінну типу Options та перевірити, що вона містить пари expected Name та Value .

Функції, визначені користувачем

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

Переваги UDF

  • Повторне використання: UDF дозволяють вам визначати складні функції один раз і повторно використовувати їх у кількох тестових випадках. Це зменшує надмірність і забезпечує узгодженість ваших планів тестування.
  • Читабельність: Використання UDF робить ваші тестові плани більш читабельними та простішими у обслуговуванні. Визначаючи користувацькі функції, ви можете інкапсулювати складну логіку та зробити свої тест-кейси більш зрозумілими.
  • Гнучкість: UDF забезпечують гнучкість для створення користувацьких функцій, які відповідають вашим конкретним вимогам до тестування. Використовуйте цей підхід, щоб ви могли адаптувати свої тест-кейси так, щоб вони краще відповідали потребам вашої програми.
  • Ремонтопридатність: За допомогою 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 програми Model Driven App (MDA).

Використовуйте ці функції у своїх тестових випадках для виконання конкретних дій або отримання даних. Наприклад, можна використовувати WaitUntilVisible для забезпечення видимості елемента керування перед взаємодією з ним, а також GetOptions для отримання та перевірки доступних для елемента керування параметрів.