Sdílet prostřednictvím


Formát YAML testovacího stroje Power Apps (Preview)

Poznámka:

Funkce Preview nejsou určené pro normální používání a mohou mít omezené fungování. Tyto funkce jsou k dispozici před oficiální verzí, aby zákazníci mohli získat dřívější přístup a poskytnout zpětnou vazbu.

Testy jsou definovány v YAML podle stejných pokynů jako Power Fx. Přečtěte si další informace o gramatice vzorců Power Fx YAML.

Podrobné příklady najdete ve složce PowerApps-TestEngine/samples .

Definice schématu YAML

Vlastnictví Description
testSuite Definuje jednu sadu testů, testovací případy v testovací sadě a konfiguraci specifické pro testovací sadu.
testSettings Definuje nastavení pro sadu testů, které se znovu používají v několika testovacích případech.
environmentVariables Definuje proměnné, které se můžou potenciálně změnit při přenosu aplikace v různých prostředích.

testSuite

Slouží k definování jednoho testu.

Vlastnictví Typ Description
persona řetězec Povinné. Uživatel, který je přihlášen k provedení testu. Musí odpovídat osobě uvedené v části Uživatelé .
testCases Testovací písmena Povinné. Definuje testovací případy v sadě testů. Testovací případy obsažené v testovacích sadách se spouštějí postupně. Stav aplikace se zachová ve všech testovacích případech v sadě.
testSuiteName řetězec Povinné. Název testovací sady.
appLogicalName řetězec Optional. Logický název aplikace, která se má spustit. Lze ho získat z řešení. V případě aplikací plátna ho musíte přidat do řešení, abyste ho získali. Podívejte se, jak identifikovat aplikaci v testovacím plánu.
appId Průvodce Optional. ID aplikace, která se má spustit. Povinné a používané pouze v případě, že appLogicalName není k dispozici. ID aplikace by se mělo používat jenom pro aplikace plátna, které nejsou v řešení. Podívejte se, jak identifikovat aplikaci v testovacím plánu.
networkRequestMocks NetworkRequestMocks Optional. Definuje napodobení síťových požadavků potřebných pro test.
onTestCaseComplete řetězec Optional. Definuje kroky, které je potřeba aktivovat pro každý testovací případ v sadě po dokončení provádění případu.
onTestCaseStart řetězec Optional. Definuje kroky, které je potřeba aktivovat pro každý testovací případ v sadě před zahájením provádění případu.
onTestSuiteComplete řetězec Optional. Definuje kroky, které je potřeba aktivovat po dokončení provádění sady.
testSuiteDescription řetězec Optional. Další informace popisují, co sada testů dělá.

Jak identifikovat aplikaci v testovacím plánu

Potřebujete buď nastavit appLogicalName aplikaci, nebo appId ji identifikovat. To, které použijete, závisí na tom, jestli je vaše aplikace definovaná v rámci řešení.

Když definujete aplikace v rámci řešení, vaše testy zůstanou přenosné napříč prostředími. appLogicalName Nastavte vlastnost tak, aby označí, že je aplikace založená na řešení.

Vyhledání logického názvu aplikace:

  1. Otevření řešení obsahujícího vaši aplikaci v Power Apps
  2. V seznamu použijte název (nikoli zobrazovaný název). Hodnota názvu obsahuje předponu vlastního nastavení pro vydavatele řešení.

Samostatné aplikace

Pokud vaše aplikace není definovaná v rámci řešení, musíte tuto vlastnost použít appId .

Vyhledání ID aplikace:

  1. Vyhledání aplikace v seznamu Power Apps
  2. Otevření podrobností a poznamenejte si IDENTIFIKÁTOR GUID ID aplikace.

NetworkRequestMocks

Vlastnictví Typ Description
requestURL řetězec Povinné. Adresa URL požadavku, která získá napodobenou odpověď. Akceptují se vzory globů.
responseDataFile řetězec Povinné. Textový soubor s obsahem napodobení odpovědi. Veškerý text v tomto souboru se přečte jako odpověď.
headers pole Optional. Seznam polí hlaviček v požadavku ve formátu [fieldName: fieldValue]
method řetězec Optional. Metoda požadavku (GET, POST atd.)
requestBodyFile řetězec Optional. Textový soubor s textem požadavku. Veškerý text v tomto souboru se přečte jako text požadavku.

U volitelných vlastností platí, že pokud není zadána žádná hodnota, směrování platí pro všechny. Pokud je například method null, pošleme zpět napodobenou odpověď bez ohledu na to, co metoda je, pokud ostatní vlastnosti odpovídají.

U aplikací requestURL Sharepoint/Dataverse/Connector může method být stejný pro všechny požadavky. x-ms-request-method a x-ms-request-url v hlavicích může být potřeba nakonfigurovat v takovém případě, aby bylo možné identifikovat různé požadavky.

Testovací písmena

Vlastnictví Typ Description
testCaseName řetězec Povinné. Název testovacího případu, který se používá při hlášení úspěšnosti a selhání
testSteps TestSteps Povinné. Sada funkcí Power Fx popisující kroky potřebné k provedení testovacího případu. Viz příklad TestSteps
testCaseDescription Ne Optional. Další informace popisují, co testovací případ dělá.

TestSteps

  • TestSteps může používat všechny existující funkce funkcí Power Fx modulu test nebo konkrétní testovací funkce definované touto architekturou.
  • Hodnota by měla začínat symbolem svislé čáry (|), aby bylo možné použít víceřádkové výrazy YAML následované znaménkem rovná se (=) označující, že se jedná o výraz Power Fx.
  • Funkce by měly být odděleny středníkem (;).
  • Komentáře lze použít a měly by začínat dvojitým zpětným lomítkem (//).

Příklad testovacích kroků

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

Slouží k definování nastavení pro testy v testovacím plánu.

Vlastnictví Typ Description
browserConfigurations BrowserConfiguration[] Povinné. Seznam konfigurací prohlížeče, které se mají testovat. Musí být zadán alespoň jeden prohlížeč.
extensionModules extensionModules Optional. Obsahuje data o rozšířeních, která chcete povolit.
filePath řetězec Optional. Cesta k souboru samostatného yaml se všemi testovacími nastaveními. Pokud je k dispozici, přepíše všechna nastavení testu v testovacím plánu.
headless Boolean Optional. Výchozí hodnota je true. Pokud je nastavená hodnota false, prohlížeč se zobrazí během provádění testu.
locale řetězec Optional. Syntaxe národního prostředí nebo jazykové verze, ve které jsou napsané testovací případy nebo testovací kroky. Pokud není zadáno, CultureInfo.CurrentCulture použije se pro národní prostředí ve výchozím nastavení k analýze testovacích kroků. Viz aspekty oblasti a jazyka
recordVideo Boolean Optional. Výchozí hodnota je False. Pokud je nastavená hodnota true, zachytí se záznam videa testu.
timeout integer Optional. Hodnota časového limitu v milisekundách Výchozí hodnota je 30 000 milisekund (30s). Pokud jakákoli operace trvá déle, než je limit časového limitu, ukončí test v selhání.
powerFxTestTypes name value dvojice Optional. Seznam názvů typů a definic typů Power Fx Viz příklad powerFxTestTypes
testFunctions description code dvojice Optional. Seznam popisů a definic funkcí Power Fx. Viz příklad testFunctions

extensionModules

Obsahuje data o rozšířeních, která chcete povolit.

Vlastnictví Typ Description
enable Booleova hodnota Zda jsou povoleny moduly rozšíření, nebo ne.
allowPowerFxNamespaces seznam Seznam oborů názvů PowerFx, které chcete povolit.
parameters páry klíč-hodnota Vlastnosti s hodnotami pro řízení modulů rozšíření V tuto chvíli platí pouze logický enableDataverseFunctions parametr.

Tento příklad ukazuje, jak povolit obor názvů PowerFx Preview :

testSettings:
  extensionModules:
    enable: true
    allowPowerFxNamespaces:
    - Preview

Další informace o funkcích preview

Aspekty oblastí a jazyků

Test Engine podporuje různá jazyková a místní nastavení, jako jsou oddělovače desetinných míst a seznamu. Vlastnost testSettings.locale řídí toto chování. Další informace naleznete v tématu Globální podpora v Microsoft Power Fx.

Podívejte se na tyto ukázkové konfigurace v úložištiPowerApps-TestEngine GitHubu:

powerFxTestTypes – příklad

powerFxTestTypes:
 - name: ControlName
   value: |
      {ControlName: Text} 
 - name: Options
   value: |
      [{Name: Text, Value: Number}]   

Tento příklad ukazuje, jak definovat vlastní typy Power Fx pro použití v testovacích případech. Typ ControlName je definován jako záznam s jedním Text polem, zatímco Options typ je definován jako tabulka záznamů, každý obsahující Name pole typu Text a Value pole typu Number. Vlastní typy se dají použít k vytváření složitějších a specifických testovacích scénářů, což zvyšuje flexibilitu a výkon definic testů.

TestFunctions – příklad

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);

Tyto příklady testovacích funkcí ukazují, jak definovat vlastní funkce Power Fx pro použití v testovacích případech. Funkce WaitUntilVisible používá selektor modelu DOM k čekání na zobrazení zadaného ovládacího prvku pomocí akcí Playwright. Funkce GetOptions načte možnosti zadaného ovládacího prvku z modelem řízené aplikace (MDA) s využitím ovládacího prvku Power Fx. Tyto vlastní funkce zlepšují flexibilitu a výkon definic testů, což umožňuje složitější a specifické testovací scénáře.

BrowserConfiguration

Každý testSettings vyžaduje alespoň jeden BrowserConfiguration.

Vlastnictví Typ Description
browser řetězec Povinné. Prohlížeč, který se má spustit při testování. Měly by odpovídat prohlížečům podporovaným playwrightem.
device řetězec Optional. Zařízení, které se má emulovat při spuštění prohlížeče. Měla by odpovídat zařízením podporovaným playwrightem.
screenHeight integer Optional. Výška obrazovky, která se má použít při spuštění prohlížeče. Je-li zadán, screenWidth musí být zadán také.
screenWidth integer Optional. Šířka obrazovky, která se má použít při spuštění prohlížeče. Je-li zadán, screenHeight musí být zadán také.

environmentVariables

Různé typy hodnot můžete uložit jako hodnoty prostředí, ale nejběžnějším případem je ukládání informací o přihlašovacích údajích se seznamem uživatelů.

users

Aby se zajistilo, že přihlašovací údaje jsou bezpečně uložené, odkazuje definice testu na uživatele používající .personaName Ukládání přihlašovacích údajů do souborů testovacího plánu se nepodporuje.

Příklad:

environmentVariables:
    - users:
        - personaName: "User1"
          emailKey: "user1Email"
        - personaName: "User2"
          emailKey: "user2Email"

Používá personaName se jako součást definice testu k označení, jaký uživatel má test spustit jako.

Podporované mechanismy úložiště přihlašovacích údajů

Pokud chcete přihlašovací údaje uložit jako proměnné prostředí, můžete je nastavit takto:

# In PowerShell - replace variableName and variableValue with the correct values
$env:variableName = "variableValue"

V YAML je potřeba definovat dvě vlastnosti, které indikují, že přihlašovací údaje tohoto uživatele jsou uložené v proměnných prostředí:

  • emailKey: Proměnná prostředí použitá k uložení e-mailu uživatele.

Příklad YAML:

    - personaName: "User1"
      emailKey: "user1Email"

Příklad PowerShellu pro nastavení přihlašovacích údajů uživatele na základě YAML:

$env:user1Email = "someone@example.com"

Viz také

Přehled testovacího stroje Power Apps (Preview)
Funkce Power Fx pro Test Engine Power Apps (Preview)