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


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

Примечание.

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

Тестовый движок использует следующие существующие функции PowerFx:

Эти функции доступны для использования только в тестовом движке:

Тестовый движок предоставляет следующие функции предварительного просмотра:

Тестовые функции двигателя

Эти функции доступны только для использования с тестовым движком.

Снимок экрана

Screenshot(fileNameOfScreenshot)

Эта функция делает снимок экрана приложения в текущий момент времени. Файл снимка экрана сохраняется в выходной тестовой папке с указанным именем.

Примечание.

Поддерживаются только файлы jpeg и png.

Пример скриншота

Screenshot("buttonClicked.png")

Wait

Wait(Control, Property, Value)

Эта функция ожидает, пока свойство элемента управления станет равным указанному значению.

Подождите пример

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

Функции предварительного просмотра

Следующие функции могут быть опционально включены в тесты, когда Power Fx пространство имен Preview добавляется Preview в allowPowerFxNamespaces список в свойстве extensionModules testSettings .

Примечание.

  • Функции предварительного просмотра могут быть изменены. По мере того, как эти функции становятся готовыми к более широкому использованию, считается, что они перемещаются в пространство имен TestEngine .
  • Вы можете использовать определяемые пользователем функции для обертывания Preview функций, чтобы упростить миграцию на непредварительные версии функций.
  • Вы могли бы заставить модель возвращать только JSON-объект, который можно было бы проанализировать с помощью функции ParseJSON .

Предварительный просмотр.AIExecutePrompt

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

Вызовите пользовательскую AI Builder подсказку и получите текстовые результаты выполнения.

Примечание.

Ознакомьтесь с разделом Dataverse Интеграция ИИ для получения информации о доступности и настройке этой функции.

Просмотрите раздел Использование Preview.AIExecutePrompt для получения более подробной информации и описания использования этой функции.

Пример Preview.AIExecutePrompt

В следующем примере вызывается запрос ИИ с именем Country Capital со значением параметра Country и ожидается, что выполнение модели вернет одно слово Paris

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

Preview.ConsentDialog

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

Дождитесь подтверждения диалогового окна согласия для пользовательской страницы приложения на основе холста или приложения на основе модели

Пример Preview.ConsentDialog

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

Предпросмотр.Пауза

Preview.Pause()

Приостановите тест и отобразите Драматургический инспектор при запуске интерактивного теста

Примечание.

Известная проблема: Функция Preview.Pause неправильно открывает инспектор для тестового запуска PAC.
Описание: Функция Preview.Pause не может открыть инспектор во время pac test run.
Обходной путь: Для функции паузы можно использовать версию Test Engine с открытым исходным кодом.

Пример предварительного просмотра.Пауза

Preview.Pause()

Предварительный просмотр.Выбор элемента управления

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

Выберите элемент управления с помощью объектной модели документа

Пример Preview.SelectControl

Выберите первое Button3 совпадение

Preview.SelectControl(Button3,1);

Предварительный просмотр.Драматург.Действие

Preview.PlaywrightAction(Text, Text)

Выполнить действие на текущей странице с помощью Playwright CSS или XPath Locator

Примеры действий предварительного просмотра.Драматурга

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

Предварительный просмотр.ДраматургДействиеЗначение

Preview.PlaywrightActionValue(Text, Text, Text)

Выполнить действие на текущей странице, используя Playwright CSS или XPath Locator со значением

Примеры Preview.PlaywrightActionValue

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

Предварительный просмотр.ДраматургСценарий

Preview.PlaywrightScript(Text)

Выполнить скрипт C# на текущей странице

Примечание.

Эта функция реализована только для отладочной сборки из версии 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 , он возвращает записи с помощью функции Table

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 и моделирование коннектора с помощью тестового движка (предварительный просмотр)