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


Power Apps Функції тестового двигуна Power Fx (попередній перегляд)

Нотатка

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

Тестовий движок використовує такі існуючі функції PowerFx:

Ці функції доступні для використання лише в тестовому двигуні:

Тестовий движок надає такі функції попереднього перегляду:

Перевірка функцій двигуна

Ці функції доступні лише для використання з Test engine

Знімок екрана

Screenshot(fileNameOfScreenshot)

Ця функція робить знімок екрана програми в поточний момент часу. Файл знімка екрана зберігається в папку тестового виводу з наданим ім’ям.

Нотатка

Підтримуються лише файли jpeg та png.

Приклад скріншота

Screenshot("buttonClicked.png")

Очікування

Wait(Control, Property, Value)

Ця функція чекає, поки властивість елемента управління дорівнюватиме вказаному значенню.

Приклад очікування

Wait(Label1, "Text", "0")

Функції попереднього перегляду

Наступні функції за бажанням можуть бути включені в тести при просторі Power Fx імен Preview шляхом додавання Preview до allowPowerFxNamespaces списку у властивості extensionModulesтестуSettings.

Нотатка

  • Функції попереднього перегляду можуть змінюватися. У міру того, як ці функції стають готовими до ширшого використання, вони розглядаються як такі, що переміщуються в TestEngine просторі імен.
  • Ви можете використовувати функції, визначені користувачем, для обгортання Preview функцій, щоб спростити міграцію до версій функції без попереднього перегляду.
  • Ви можете, щоб модель повертала лише об’єкт JSON, який ви могли б проаналізувати за допомогою ParseJSON функції.

Preview.AIExecutePrompt

Preview.AIExecutePrompt(Name, {Property: Type})

Викличте підказку AI Builder Custom та отримайте текстові результати виконання.

Нотатка

Перегляньте розділ «Інтеграція Dataverse зі штучним інтелектом », щоб отримати інформацію про доступність і конфігурацію цієї функції.

Перегляньте використання Preview.AIExecutePrompt для отримання більш детальної інформації та опису використання цієї функції.

Приклад Preview.AIExecutePrompt

У наведеному нижче прикладі викликається запит штучного інтелекту з іменем Country Capital зі значенням параметрів Country і очікує, що виконання моделі поверне одне слово Paris

Assert("Paris" = Preview.AIExecutePrompt("Country Capital", { Country: "France" }).Text)

Попередній перегляд.Діалог згоди

Preview.ConsentDialog(Table({Text: Text}));

Зачекайте, доки не з’явиться діалогове вікно згоди для користувацької сторінки програми на основі полотна або програми, керованої моделлю

Приклад Preview.ConsentDialog

Preview.ConsentDialog(Table({Text: "Your Dialog Title"}));

Попередній перегляд.Пауза

Preview.Pause()

Призупиніть тест і відобразіть Ревізора драматурга, якщо ви проводите інтерактивний тест

Нотатка

Відома проблема: Попередній перегляд.Функція паузи не відкриває належним чином інспектор для тестового запуску pac
Опис: Функція Preview.Pause не відкриває інспектор під час. pac test run
Спосіб вирішення: Версія Test Engine з відкритим вихідним кодом може бути використана для призупинення функціональності.

Приклад Preview.Pause

Preview.Pause()

Попередній перегляд.SelectControl

Preview.SelectControl(Control: ControlName, Index: Number)

Вибір елемента керування за допомогою об’єктної моделі документа

Приклад Preview.SelectControl

Вибрати перший Button3 матч

Preview.SelectControl(Button3,1);

Прев’ю.Дія драматурга

Preview.PlaywrightAction(Text, Text)

Виконайте дію на поточній сторінці за допомогою драматурга CSS або XPath локатора

Прев’ю.ДраматургПриклади дій

Preview.PlaywrightAction("//button", "click");
Preview.PlaywrightAction("//button", "exists");
Preview.PlaywrightAction("//button", "wait");

Preview.PlaywrightActionValue

Preview.PlaywrightActionValue(Text, Text, Text)

Виконайте дію на поточній сторінці за допомогою Драматурга CSS або XPath Локатора зі значенням

Preview.PlaywrightActionValue приклади

Preview.PlaywrightAction("//input[@data-id='1']", "fill", "Hello");

Прев’ю.Сценарій драматурга

Preview.PlaywrightScript(Text)

Виконайте скрипт C# на поточній сторінці

Нотатка

Ця функція реалізована лише для збірки Debug з відкритої версії Test Engine, а не в тестовому запуску pac.

Приклад Preview.PlaywrightScript

Preview.PlaywrightScript("sample.csx")

Зі змістом sample.csx аналогічного цьому коду:

// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.

#r "Microsoft.Playwright.dll"
#r "Microsoft.Extensions.Logging.dll"
using Microsoft.Playwright;
using Microsoft.Extensions.Logging;
using System.Linq;
using System.Threading.Tasks;

public class PlaywrightScript {
    public static void Run(IBrowserContext context, ILogger logger) {
        Execute(context, logger).Wait();
    }

    public static async Task Execute(IBrowserContext context, ILogger logger) {
        var page = context.Pages.First();

        if ( page.Url == "about:blank" ) {
            var nextPage = context.Pages.Skip(1).First();
            await page.CloseAsync();
            page = nextPage;
        }

        foreach ( var frame in page.Frames ) {
            if ( await frame.Locator("button:has-text('Button')").CountAsync() > 0 ) {
                await frame.ClickAsync("button:has-text('Button')");
            }
        }
    }
}

Preview.SimulateConnector

Preview.SimulateConnector({name: Text, then: Record})

Коли виклик здійснюється з Power Apps до типу конектора, знайденого зі списку всіх Power Apps конекторів

Приклад Preview.SimulateConnector

Preview.SimulateConnector({
   name: "msnweather", 
   then: {responses: { 
      daily: { 
         day: { 
            summary: "You are seeing the mock response" }
            }
         }
      }
   })

Preview.SimulateDataverse

Preview.SimulateDataverse({Action: Text, Entity: Text, Then: Table})

Приклад Preview.SimulateDataverse

У цьому прикладі, коли виконується виклик для запиту Dataverse сутності з логічним іменем sample_combotable , вона повертає записи за допомогою функції Таблиця

Preview.SimulateDataverse({
    Action: "Query",
    Entity: "sample_combotable",
    Then: Table(
    {
        'sample_name': "Item 1",
        'sample_id': 3,
        'sample_combotableid': "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
        'createdon': "2024-12-02T17:52:45Z"
    },
    {
        'sample_name': "RR2",
        'sample_id': 4,
        'sample_combotableid': "bbbbbbbb-1111-2222-3333-cccccccccccc",
        'createdon': "2024-12-02T17:54:45Z"
    },
        {
        'sample_name': "RR3",
        'sample_id': 5,
        'sample_combotableid': "cccccccc-2222-3333-4444-dddddddddddd",
        'createdon': "2024-12-02T17:54:45Z"
    }
    )
});

Dataverse та симуляція з’єднувача за допомогою Test Engine (попередній перегляд)