Бележка
Достъпът до тази страница изисква удостоверяване. Можете да опитате да влезете или да промените директориите.
Достъпът до тази страница изисква удостоверяване. Можете да опитате да промените директориите.
Бележка
Функциите за предварителен преглед не са предназначени за производствена употреба и може да са с ограничена функционалност. Тези функции са достъпни преди официалното издание, за да могат клиентите да получат ранен достъп и да дадат обратна връзка.
Тестовете се определят в YAML, следвайки същите указания като Power Fx. Научете повече за граматиката на формули на Power Fx YAML.
Прегледайте папката PowerApps-TestEngine/samples за подробни примери.
Дефиниции на YAML схема
| Свойство | Описание |
|---|---|
| 1000000 | Определя един тестов пакет – тестовите случаи в тестовия пакет и конфигурацията, специфични за тестовия пакет |
| тестови настройки | Определя настройките за тестовия пакет, които се използват повторно в няколко тестови случая |
| environment Дисперсии | Определя променливи, които могат да се променят потенциално при пренасяне на приложението в различни среди |
1000000
Използва се за дефиниране на един тест.
| Свойство | Тип | Описание |
|---|---|---|
persona |
низ | Задължително. Потребителят, който е влязъл, за да извърши теста. Трябва да съвпада с персона, посочена в раздела Потребители . |
testCases |
Тестови калъфи | Задължително. Определя тестовите случаи в тестовия пакет. Тестовите случаи, които се съдържат в тестовите пакети, се изпълняват последователно. Състоянието на приложението се запазва във всички тестови случаи в пакет. |
testSuiteName |
низ | Задължително. Името на тестовия пакет. |
appLogicalName |
низ | По избор. Логическото име на приложението, което трябва да се стартира. Може да се получи от разтвора. За приложенията за платно трябва да го добавите към решение, за да го получите. Вижте Как да идентифицирате приложението си в тестовия план |
appId |
GUID | По избор. ИД на приложението, което трябва да се стартира. Задължително и използвано само когато appLogicalName не е налично. ИД на приложение трябва да се използва само за приложения за платно, които не са в решението. Вижте Как да идентифицирате приложението си в тестовия план |
networkRequestMocks |
NetworkRequestMocks | По избор. Определя макети на мрежови заявки, необходими за теста. |
onTestCaseComplete |
низ | По избор. Определя стъпките, които трябва да бъдат задействани за всеки тестов случай в пакет, след като случаят завърши изпълнението. |
onTestCaseStart |
низ | По избор. Определя стъпките, които трябва да бъдат задействани за всеки тестов случай в пакет, преди случаят да започне да се изпълнява. |
onTestSuiteComplete |
низ | По избор. Определя стъпките, които трябва да бъдат задействани, след като пакетът завърши изпълнението. |
testSuiteDescription |
низ | По избор. Допълнителна информация описва какво прави тестовия пакет. |
Как да идентифицирате приложението си в тестовия план
Трябва да настроите или appLogicalNameappId да идентифицирате вашето приложение. Това, което използвате, зависи от това дали вашето приложение е дефинирано в рамките на решение.
Базирани на решения приложения (препоръчва се)
Когато дефинирате вашите приложения в решения, тестовете ви остават преносими в среди. Задайте свойството appLogicalName , за да укажете, че приложението е базирано на решение.
За да намерите логическото име на приложението:
- Отворете решението, съдържащо вашето приложение, в Power Apps
- Използвайте името (не показваното име) в списъка. Стойността на името включва префикса за персонализиране за издателя на решението.
Самостоятелни приложения
Когато вашето приложение не е дефинирано в решение, трябва да използвате свойството appId .
За да намерите ИД на приложението:
- Намерете приложението в списъка с приложения на Power
- Отворете "Подробни данни" и обърнете внимание на GUID на ИД на приложение
NetworkRequestMocks
| Свойство | Тип | Описание |
|---|---|---|
requestURL |
низ | Задължително. URL адресът на искането, който получава присмиваем отговор. Моделите "Глоб" са приети |
responseDataFile |
низ | Задължително. Текстов файл с макет на съдържанието на отговора. Целият текст в този файл се чете като отговор |
headers |
масив | По избор. Списък на полетата на заглавката в искането във формат [fieldName: fieldValue] |
method |
низ | По избор. Методът на искането (GET, POST и т.н.) |
requestBodyFile |
низ | По избор. Текстов файл с основния текст на искането. Целият текст в този файл се чете като основен текст на искането |
За незадължителни свойства, ако не е зададена стойност, маршрутизирането се отнася за всички. Например ако method е Null, изпращаме обратно макета на отговора, независимо какъв е методът, стига всички други свойства да съвпадат.
За приложения requestURL на Sharepoint/Dataverse/Connector и method могат да бъдат еднакви за всички заявки.
x-ms-request-method и x-ms-request-url в заглавките може да се наложи да бъдат конфигурирани в този случай, за да се идентифицират различни искания.
Тестови калъфи
| Свойство | Тип | Описание |
|---|---|---|
testCaseName |
низ | Задължително. Името на тестовия случай, който се използва при отчитане на успеха и неуспеха |
testSteps |
Тестови стъпки | Задължително. Набор от функции на Power Fx, описващи стъпките, необходими за извършване на тестовия случай. Вижте примера TestSteps |
testCaseDescription |
Не | По избор. Допълнителна информация описва какво прави тестовия случай |
Тестови стъпки
-
TestStepsможе да използва всички съществуващи функции на test Engine Power Fx или определени функции за тестване , дефинирани от тази рамка. - Стойността трябва да започва със символ за канал (
|), за да позволи многоредови YAML изрази, последвани от знак за равенство (=), за да покаже, че това е израз на Power Fx - Функциите трябва да бъдат разделени с точка и запетая (
;). - Коментарите могат да се използват и трябва да започват с двойни обратно наклонени черти (
//).
Пример за тестови стъпки
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");
тестови настройки
Използва се за дефиниране на настройки за тестовете в плана за тестване.
| Свойство | Тип | Описание |
|---|---|---|
browserConfigurations |
Конфигурация на браузъра[] | Задължително. Списък с конфигурации на браузъра, които трябва да бъдат тествани. Трябва да бъде зададен поне един браузър. |
extensionModules |
extensionModules | По избор. Съдържа данни за разширенията за разрешаване. |
filePath |
низ | По избор. Пътят на файла към отделен файл yaml с всички настройки на теста. Ако е предоставено, то ще замести всички настройки за тестване в плана за тестване. |
headless |
boolean | По избор. Стойността по подразбиране е „true“. Ако е настроен на "неистина", браузърът се показва по време на изпълнението на теста. |
locale |
низ | По избор. Синтаксисът на езиковата променлива/културата, в който са написани тестовите случаи или стъпките на теста. Ако не е указан, CultureInfo.CurrentCulture се използва за езиковата променлива по подразбиране за анализиране на стъпките от теста. Вижте Съображения за регион и език |
recordVideo |
boolean | По избор. По подразбиране е невярно. Ако е зададено на "истина", се заснема видеозапис на теста. |
timeout |
цяло число | По избор. Стойност на времето на изчакване в милисекунди. По подразбиране е 30 000 милисекунди (30s). Ако някоя операция отнема повече време от ограничението за време на изчакване, тестът завършва с грешка. |
powerFxTestTypes |
name
value чифт |
По избор. Списък с дефиниции на име на тип и тип Power Fx. Вижте примера powerFxTestTypes |
testFunctions |
description
code чифт |
По избор. Списък с описания и дефиниции на функции на Power Fx. Вижте примера testFunctions |
extensionModules
Съдържа данни за разширенията за разрешаване.
| Свойство | Тип | Описание |
|---|---|---|
enable |
булево | Дали са разрешени вътрешни модули. |
allowPowerFxNamespaces |
списък | Списък на пространствата на имената на PowerFx за разрешаване. |
parameters |
двойки стойности на ключ | Свойства със стойности за управление на модули за разширение. В момента за това е валиден само булевият enableDataverseFunctions параметър. |
Този пример показва как да разрешите пространството на имената на PowerFx Preview :
testSettings:
extensionModules:
enable: true
allowPowerFxNamespaces:
- Preview
Научете повече за функциите за визуализация
Съображения за регион и език
Тестовата машина поддържа различни езикови и регионални настройки, като десетични и разделители на списъци. Свойството testSettings.locale контролира тези поведения. За повече информация вижте Глобална поддръжка в Microsoft Power Fx.
Вижте тези примерни конфигурации в хранилището наPowerApps-TestEngine GitHub:
- За региони, използващи точка и запетая като разделители на списъци
- За области, които използват запетаи като десетични разделители
PowerFxTestTypes example
powerFxTestTypes:
- name: ControlName
value: |
{ControlName: Text}
- name: Options
value: |
[{Name: Text, Value: Number}]
Този пример показва как да дефинирате потребителски типове Power Fx за използване във вашите тестови случаи. Типът ControlName се дефинира като запис с едно Text поле, докато типът Options се дефинира като таблица със записи, всяко от които съдържа Name поле от тип Text и Value поле от тип Number. Типовете по избор могат да се използват за създаване на по-сложни и специфични тестови сценарии, като повишават гъвкавостта и силата на дефинициите на тестовете.
testFunctions example
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.
| Свойство | Тип | Описание |
|---|---|---|
browser |
низ | Задължително. Браузърът, който трябва да се стартира при тестване. Трябва да съвпадат с браузърите, поддържани от Playwright. |
device |
низ | По избор. Устройството за емулиране при стартиране на браузъра. Трябва да съвпадат с устройствата, поддържани от Playwright |
screenHeight |
цяло число | По избор. Височината на екрана, който да се използва при стартиране на браузъра. Ако е зададено, screenWidth трябва също да се зададе. |
screenWidth |
цяло число | По избор. Ширината на екрана, който да се използва при стартиране на браузъра. Ако е зададено, screenHeight трябва също да се зададе. |
environment Дисперсии
Можете да съхранявате различни типове стойности като стойности за околната среда, но най-често срещаният случай е съхраняването на информация за идентификационни данни със списък с потребители.
Потребители
За да се гарантира, че идентификационните данни се съхраняват по сигурен начин, дефиницията на теста препраща към потребителите, които използват 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 Функции на тестовия двигател Power Fx (предварителен преглед)