Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Модуль тестирования устарел и будет удален в будущем выпуске. Используйте примеры Power Platform Playwright для возможностей автоматизации тестирования в службах Power Platform и Dynamics 365.
Тестовый движок использует следующие существующие функции PowerFx:
Эти функции доступны для использования только в тестовом движке:
Тестовый движок предоставляет следующие функции предварительного просмотра:
- Предварительный просмотр.AIExecutePrompt
- Preview.ConsentDialog
- Предпросмотр.Пауза
- Предпросмотр.Playwright.Action
- Предварительный просмотр.PlaywrightActionValue
- Предварительный просмотр.Playwright Script
- Предварительный просмотр.Выбор элемента управления
- Preview.SimulateConnector
- Preview.SimulateDataverse
Тестовые функции двигателя
Эти функции доступны только для использования с тестовым движком.
Screenshot
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()
Приостановите тест и отобразите Playwright Inspector, если выполняется интерактивный тест
Замечание
Известная проблема: функция Preview.Pause не открывает надлежащим образом инспектор для pac test run
Описание: Функция Preview.Pause не может открыть инспектор во время pac test run.
Обходной путь: Версия тестового движка с открытым исходным кодом может быть использована для реализации функции паузы.
Пример предварительного просмотра.Пауза
Preview.Pause()
Preview.SelectControl
Preview.SelectControl(Control: ControlName, Index: Number)
Выберите элемент управления с помощью объектной модели документа
Пример Preview.SelectControl
Выберите первое Button3 совпадение
Preview.SelectControl(Button3,1);
Предварительный просмотр.PlaywrightAction
Preview.PlaywrightAction(Text, Text)
Выполнить действие на текущей странице с помощью Playwright CSS или XPath Locator
Примеры использования Preview.PlaywrightAction
Preview.PlaywrightAction("//button", "click");
Preview.PlaywrightAction("//button", "exists");
Preview.PlaywrightAction("//button", "wait");
Предварительный просмотр.PlaywrightActionValue
Preview.PlaywrightActionValue(Text, Text, Text)
Выполнение действия на текущей странице с использованием CSS или XPath Locator Playwright со значением
Примеры предварительного просмотра PlaywrightActionValue
Preview.PlaywrightAction("//input[@data-id='1']", "fill", "Hello");
Предварительный просмотр.PlaywrightScript
Preview.PlaywrightScript(Text)
Выполнить скрипт C# на текущей странице
Замечание
Эта функция реализована только для отладочной сборки из версии Test Engine с открытым исходным кодом, не входящей в pac test run.
Пример 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 и соединителей с помощью Test Engine (не рекомендуется к использованию)