Споделяне чрез


Power Apps Test Engine YAML формат (предварителен преглед)

Бележка

Функциите за предварителен преглед не са предназначени за производствена употреба и може да са с ограничена функционалност. Тези функции са достъпни преди официалното издание, за да могат клиентите да получат ранен достъп и да дадат обратна връзка.

Тестовете се определят в 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 , за да укажете, че приложението е базирано на решение.

За да намерите логическото име на приложението:

  1. Отворете решението, съдържащо вашето приложение, в Power Apps
  2. Използвайте името (не показваното име) в списъка. Стойността на името включва префикса за персонализиране за издателя на решението.

Самостоятелни приложения

Когато вашето приложение не е дефинирано в решение, трябва да използвате свойството appId .

За да намерите ИД на приложението:

  1. Намерете приложението в списъка с приложения на Power
  2. Отворете "Подробни данни" и обърнете внимание на 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 (предварителен преглед)