Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Примечание.
Предварительные версии функций не предназначены для использования в производственной среде, а их функциональность может быть ограничена. Они доступны перед официальным выпуском, чтобы клиенты могли досрочно получить доступ и предоставить отзывы.
Тестовый движок использует следующие существующие функции PowerFx:
Эти функции доступны для использования только в тестовом движке:
Тестовый движок предоставляет следующие функции предварительного просмотра:
- Предварительный просмотр.AIExecutePrompt
- Preview.ConsentDialog
- Предпросмотр.Пауза
- Предварительный просмотр.Драматург.Действие
- Предварительный просмотр.ДраматургДействиеЗначение
- Предварительный просмотр.ДраматургСценарий
- Предварительный просмотр.Выбор элемента управления
- Preview.SimulateConnector
- Preview.SimulateDataverse
Тестовые функции двигателя
Эти функции доступны только для использования с тестовым движком.
Снимок экрана
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 и моделирование коннектора с помощью тестового движка (предварительный просмотр)