Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Предварительные версии функций не предназначены для использования в производственной среде, а их функциональность может быть ограничена. Эти функции доступны до официального выпуска, чтобы клиенты могли получать ранний доступ и предоставлять отзывы.
Тесты определяются в YAML, следуя тем же рекомендациям, что и Power Fx. Узнайте больше о грамматике формулы Power Fx YAML.
Дополнительные примеры см. в папке PowerApps-TestEngine/samples .
Определения схемы YAML
| Недвижимость | Description |
|---|---|
| testSuite | Определяет один набор тестов, тестовые варианты в наборе тестов и конфигурации, относящиеся к набору тестов. |
| testSettings | Определяет параметры набора тестов, которые повторно используются в нескольких тестовых случаях. |
| environmentVariables | Определяет переменные, которые могут измениться при переносе приложения в разных средах. |
testSuite
Используется для определения одного теста.
| Недвижимость | Тип | Description |
|---|---|---|
persona |
струна | Обязательное. Пользователь, вошедший в систему для выполнения теста. Должен соответствовать человеку, указанному в разделе "Пользователи ". |
testCases |
TestCases | Обязательное. Определяет тестовые случаи в наборе тестов. Тестовые случаи, содержащиеся в наборах тестов, выполняются последовательно. Состояние приложения сохраняется во всех тестовых случаях в наборе. |
testSuiteName |
струна | Обязательное. Имя набора тестов. |
appLogicalName |
струна | Необязательно. Логическое имя запускаемого приложения. Его можно получить из решения. Для приложений на основе холста необходимо добавить его в решение, чтобы получить его. Узнайте , как определить приложение в тестовом плане |
appId |
Гид | Необязательно. Идентификатор запускаемого приложения. Обязательный и используемый только в том случае, если appLogicalName он отсутствует. Идентификатор приложения следует использовать только для приложений холста, которые не в решении. Узнайте , как определить приложение в тестовом плане |
networkRequestMocks |
NetworkRequestMocks | Необязательно. Определяет макеты сетевых запросов, необходимые для теста. |
onTestCaseComplete |
струна | Необязательно. Определяет шаги, которые необходимо активировать для каждого тестового случая в наборе после завершения выполнения дела. |
onTestCaseStart |
струна | Необязательно. Определяет шаги, которые необходимо активировать для каждого тестового случая в наборе перед началом выполнения дела. |
onTestSuiteComplete |
струна | Необязательно. Определяет шаги, которые необходимо активировать после завершения выполнения набора. |
testSuiteDescription |
струна | Необязательно. Дополнительные сведения о том, что делает набор тестов. |
Определение приложения в тестовом плане
Вам нужно задать или appLogicalNameappId определить приложение. Используемое приложение зависит от того, определено ли приложение в решении.
Приложения на основе решений (рекомендуется)
При определении приложений в решениях тесты остаются переносимыми в разных средах.
appLogicalName Задайте свойство, указывающее, что приложение основано на решении.
Чтобы найти логическое имя приложения, выполните следующие действия.
- Откройте решение, содержащее приложение в Power Apps
- Используйте имя (не отображаемое имя) в списке. Значение имени включает префикс настройки для издателя решения.
Автономные приложения
Если приложение не определено в решении, необходимо использовать appId это свойство.
Чтобы найти идентификатор приложения, выполните следующие действия.
- Поиск приложения в списке Power Apps
- Откройте сведения и запишите GUID идентификатора приложения
NetworkRequestMocks
| Недвижимость | Тип | Description |
|---|---|---|
requestURL |
струна | Обязательное. URL-адрес запроса, который получает макет ответа. Шаблоны glob принимаются |
responseDataFile |
струна | Обязательное. Текстовый файл с содержимым ответа макета. Весь текст в этом файле считывается как ответ |
headers |
массив | Необязательно. Список полей заголовка в запросе в формате [fieldName: fieldValue] |
method |
струна | Необязательно. Метод запроса (GET, POST и т. д.) |
requestBodyFile |
струна | Необязательно. Текстовый файл с текстом запроса. Весь текст в этом файле считывается как текст запроса |
Для необязательных свойств, если значение не указано, маршрутизация применяется ко всем. Например, если method значение NULL, мы отправим обратный ответ макета независимо от того, какой метод соответствует другим свойствам.
Для приложений Sharepoint/Dataverse/Connector и requestURLmethod может быть одинаковым для всех запросов.
x-ms-request-method и x-ms-request-url в заголовках может потребоваться настроить в этом случае для идентификации различных запросов.
TestCases
| Недвижимость | Тип | Description |
|---|---|---|
testCaseName |
струна | Обязательное. Имя тестового случая, используемого в отчетах об успешном выполнении и сбое |
testSteps |
TestSteps | Обязательное. Набор функций Power Fx, описывающих шаги, необходимые для выполнения тестового случая. См . пример TestSteps |
testCaseDescription |
нет | Необязательно. Дополнительные сведения о том, что делает тестовый случай |
TestSteps
-
TestStepsможет использовать любые существующие функции Подсистемы тестирования Power Fx или определенные тестовые функции , определенные этой платформой. - Значение должно начинаться с символа канала (
|), чтобы разрешить многостровые выражения YAML, за которым следует знак равенства (=) для указания того, что это выражение Power Fx - Функции должны быть разделены точкой с запятой (
;). - Комментарии можно использовать и начинать с двойных символов обратной косой черты (
//).
Пример TestSteps
testCases:
- testCaseName: Fill in a city name and do the search
testSteps: |
= Screenshot("connectorapp_loaded.png");
SetProperty(TextInput1.Text, "Atlanta");
Select(Button1);
Assert(Label4.Text = "You are seeing the mock response", "Validate the output is from the mock");
Screenshot("connectorapp_end.png");
testSettings
Используется для определения параметров для тестов в плане тестирования.
| Недвижимость | Тип | Description |
|---|---|---|
browserConfigurations |
BrowserConfiguration[] | Обязательное. Список конфигураций браузера для тестирования. Необходимо указать хотя бы один браузер. |
extensionModules |
extensionModules | Необязательно. Содержит данные о расширениях для включения. |
filePath |
струна | Необязательно. Путь к отдельному файлу yaml со всеми параметрами теста. При условии он переопределит все параметры теста в плане тестирования. |
headless |
булевый | Необязательно. Значение по умолчанию — истинно. Если задано значение false, браузер отображается во время выполнения теста. |
locale |
струна | Необязательно. Синтаксис языкового стандарта или языка и региональных параметров, в котором записываются тестовые варианты или этапы тестирования. Если не указано, CultureInfo.CurrentCulture используется для языкового стандарта по умолчанию для синтаксического анализа тестовых шагов. Ознакомьтесь с рекомендациями по регионам и языкам |
recordVideo |
булевый | Необязательно. По умолчанию — false. Если задано значение true, запись видео теста записывается. |
timeout |
целое число | Необязательно. Значение времени ожидания в миллисекундах. По умолчанию используется 30 000 миллисекунда (30-х). Если любая операция занимает больше времени ожидания, она завершает тест сбоем. |
powerFxTestTypes |
name
value пара |
Необязательно. Список определений типов и типов Power Fx. Пример powerFxTestTypes |
testFunctions |
description
code пара |
Необязательно. Список определений функций Power Fx и описания. См . пример testFunctions |
extensionModules
Содержит данные о расширениях для включения.
| Недвижимость | Тип | Description |
|---|---|---|
enable |
bool | Включены ли модули расширения. |
allowPowerFxNamespaces |
list | Список пространств имен PowerFx для включения. |
parameters |
пары "ключевое значение" | Свойства со значениями для управления модулями расширения. В настоящее время для этого допустимо только логический enableDataverseFunctions параметр. |
В этом примере показано, как включить пространство имен PowerFx Preview :
testSettings:
extensionModules:
enable: true
allowPowerFxNamespaces:
- Preview
Дополнительные сведения о функциях предварительной версии
Рекомендации по регионам и языку
Модуль тестирования поддерживает различные языковые и региональные параметры, такие как десятичные и разделители списков. Свойство testSettings.locale управляет этими поведением. Дополнительные сведения см. в статье "Глобальная поддержка" в Microsoft Power Fx.
Просмотрите эти примеры конфигураций в репозиторииPowerApps-TestEngine GitHub:
- Для регионов с запятой в качестве разделителей списков
- Для регионов, использующих запятые в качестве десятичных разделителей
Пример powerFxTestTypes
powerFxTestTypes:
- name: ControlName
value: |
{ControlName: Text}
- name: Options
value: |
[{Name: Text, Value: Number}]
В этом примере показано, как определить пользовательские типы Power Fx для использования в тестовых случаях. Тип ControlName определяется как запись с одним Text полем, а Options тип определяется как таблица записей, каждая из которых содержит Name поле типа Text и Value поле типа Number. Пользовательские типы можно использовать для создания более сложных и конкретных сценариев тестирования, повышения гибкости и возможностей определений тестов.
Пример testFunctions
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);
В этих примерах тестовой функции показано, как определить пользовательские функции Power Fx для использования в тестовых случаях. Функция WaitUntilVisible использует селектор DOM для ожидания, пока указанный элемент управления не отображается, используя действия Playwright. Функция GetOptions извлекает параметры указанного элемента управления из приложения на основе модели (MDA), используя элемент управления Power Fx. Эти пользовательские функции повышают гибкость и мощность определений тестов, позволяя более сложным и конкретным сценариям тестирования.
BrowserConfiguration
Для каждого testSettings требуется по крайней мере один BrowserConfiguration.
| Недвижимость | Тип | Description |
|---|---|---|
browser |
струна | Обязательное. Браузер, который необходимо запустить при тестировании. Должен соответствовать браузерам, поддерживаемым Playwright. |
device |
струна | Необязательно. Устройство для эмуляции при запуске браузера. Должно соответствовать устройствам, поддерживаемым Playwright |
screenHeight |
целое число | Необязательно. Высота экрана, используемого при запуске браузера. При указании screenWidth также необходимо указать. |
screenWidth |
целое число | Необязательно. Ширина экрана, используемая при запуске браузера. При указании screenHeight также необходимо указать. |
environmentVariables
Вы можете хранить различные типы значений в качестве экологических значений, но наиболее распространенный случай — хранение учетных данных со списком пользователей.
users
Чтобы обеспечить безопасное хранение учетных данных, определение теста ссылается на пользователей personaNameс помощью . Хранение учетных данных в файлах плана тестирования не поддерживается.
Пример:
environmentVariables:
- users:
- personaName: "User1"
emailKey: "user1Email"
- personaName: "User2"
emailKey: "user2Email"
Он personaName используется в качестве части определения теста, чтобы указать, какой пользователь будет выполнять тест как.
Поддерживаемые механизмы хранения учетных данных
Чтобы сохранить учетные данные в качестве переменных среды, их можно задать следующим образом:
# In PowerShell - replace variableName and variableValue with the correct values
$env:variableName = "variableValue"
В YAML необходимо определить два свойства, чтобы указать, что учетные данные этого пользователя хранятся в переменных среды:
-
emailKey: переменная среды, используемая для хранения электронной почты пользователя.
Пример YAML:
- personaName: "User1"
emailKey: "user1Email"
Пример PowerShell для задания учетных данных пользователя на основе YAML:
$env:user1Email = "someone@example.com"
См. также
Обзор подсистемы тестирования Power Apps (предварительная версия)
Функции Power Apps Test Engine Power Fx (предварительная версия)