Delen via


YAML-indeling van Power Apps Test Engine (preview)

Opmerking

Preview-functies zijn niet bedoeld voor productiegebruik en bieden mogelijk beperkte functionaliteit. Deze functies zijn beschikbaar vóór een officiële release, zodat klanten vroege toegang kunnen krijgen en feedback kunnen geven.

Tests worden gedefinieerd in YAML volgens dezelfde richtlijnen als Power Fx. Meer informatie over de grammatica van power fx YAML-formules.

Bekijk de map PowerApps-TestEngine/samples voor gedetailleerde voorbeelden.

YAML-schemadefinities

Vastgoed Description
testSuite Definieert één testpakket, de testcases in het testpakket en de configuratie die specifiek zijn voor het testpakket
testSettings Hiermee definieert u instellingen voor het testpakket dat opnieuw wordt gebruikt in meerdere testcases
environmentVariables Definieert variabelen die mogelijk kunnen worden gewijzigd wanneer de app wordt overgezet in verschillende omgevingen

testSuite

Wordt gebruikt om één test te definiëren.

Vastgoed Typologie Description
persona touw Verplicht. De gebruiker die is aangemeld om de test uit te voeren. Moet overeenkomen met een persoon die wordt vermeld in de sectie Gebruikers .
testCases Testcases Verplicht. Definieert testcases in het testpakket. Testgevallen in testsuites worden opeenvolgend uitgevoerd. De app-status blijft behouden in alle testcases in een suite.
testSuiteName touw Verplicht. De naam van de testsuite.
appLogicalName touw Optional. De logische naam van de app die moet worden gestart. Het kan worden verkregen uit de oplossing. Voor canvas-apps moet u deze toevoegen aan een oplossing om deze te verkrijgen. Zie Hoe u uw toepassing in het testplan kunt identificeren
appId Guid Optional. De id van de app die moet worden gestart. Vereist en wordt alleen gebruikt wanneer appLogicalName deze niet aanwezig is. App-id mag alleen worden gebruikt voor canvas-apps die zich niet in de oplossing bevinden. Zie Hoe u uw toepassing in het testplan kunt identificeren
networkRequestMocks NetworkRequestMocks Optional. Definieert netwerkaanvraagsimuleerden die nodig zijn voor de test.
onTestCaseComplete touw Optional. Definieert de stappen die moeten worden geactiveerd voor elke testcase in een suite nadat de aanvraag is uitgevoerd.
onTestCaseStart touw Optional. Definieert de stappen die moeten worden geactiveerd voor elke testcase in een suite voordat de aanvraag wordt uitgevoerd.
onTestSuiteComplete touw Optional. Definieert de stappen die moeten worden geactiveerd nadat de suite is uitgevoerd.
testSuiteDescription touw Optional. Aanvullende informatie beschrijft wat het testpakket doet.

Uw toepassing identificeren in het testplan

U moet uw appLogicalName toepassing instellen of appId identificeren. Welke u gebruikt, is afhankelijk van of uw app is gedefinieerd binnen een oplossing.

Wanneer u uw apps in oplossingen definieert, blijven uw tests overdraagbaar in omgevingen. Stel de appLogicalName eigenschap in om aan te geven dat de app is gebaseerd op een oplossing.

Ga als volgt te werk om de logische naam van de app te vinden:

  1. Open de oplossing met uw app in Power Apps
  2. Gebruik de naam (niet weergavenaam) in de lijst. De naamwaarde bevat het aanpassingsvoorvoegsel voor de uitgever van de oplossing.

Zelfstandige apps

Wanneer uw app niet is gedefinieerd in een oplossing, moet u de appId eigenschap gebruiken.

De id van de app zoeken:

  1. De app zoeken in de Lijst met Power Apps
  2. Details openen en de GUID van de app-id noteren

NetworkRequestMocks

Vastgoed Typologie Description
requestURL touw Verplicht. De aanvraag-URL die een mock-antwoord krijgt. Glob-patronen worden geaccepteerd
responseDataFile touw Verplicht. Een tekstbestand met de inhoud van het gesimuleerde antwoord. Alle tekst in dit bestand wordt gelezen als het antwoord
headers gegevensreeks Optional. Een lijst met koptekstvelden in de aanvraag in de indeling [fieldName: fieldValue]
method touw Optional. De methode van de aanvraag (GET, POST, enzovoort)
requestBodyFile touw Optional. Een tekstbestand met de hoofdtekst van de aanvraag. Alle tekst in dit bestand wordt gelezen als de hoofdtekst van de aanvraag

Als er geen waarde is opgegeven voor optionele eigenschappen, is de routering van toepassing op alle. Als het bijvoorbeeld method null is, sturen we het mock-antwoord terug, ongeacht wat de methode is, zolang de andere eigenschappen allemaal overeenkomen.

Voor Sharepoint-/Dataverse-/Connector-apps requestURL en method kunnen voor alle aanvragen hetzelfde zijn. x-ms-request-method en x-ms-request-url in headers moet in dat geval worden geconfigureerd om verschillende aanvragen te identificeren.

Testcases

Vastgoed Typologie Description
testCaseName touw Verplicht. De naam van de testcase die wordt gebruikt bij het rapporteren van geslaagde en mislukte pogingen
testSteps TestSteps Verplicht. Een set Power Fx-functies die de stappen beschrijven die nodig zijn om de testcase uit te voeren. Zie teststeps-voorbeeld
testCaseDescription Nee. Optional. Aanvullende informatie beschrijft wat de testcase doet

TestSteps

  • TestSteps kan gebruikmaken van bestaande Functies van de Test Engine Power Fx of specifieke testfuncties die door dit framework zijn gedefinieerd.
  • De waarde moet beginnen met een pijpsymbool (|) om YAML-expressies met meerdere regels toe te staan, gevolgd door een gelijkteken (=) om aan te geven dat het een Power Fx-expressie is
  • Functies moeten worden gescheiden door een puntkomma (;).
  • Opmerkingen kunnen worden gebruikt en moeten beginnen met dubbele backslashtekens (//).

Voorbeeld van 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

Wordt gebruikt voor het definiëren van instellingen voor de tests in het testplan.

Vastgoed Typologie Description
browserConfigurations BrowserConfiguration[] Verplicht. Een lijst met browserconfiguraties die moeten worden getest. Er moet ten minste één browser worden opgegeven.
extensionModules extensionModules Optional. Bevat gegevens over extensies die u wilt inschakelen.
filePath touw Optional. Het bestandspad naar een afzonderlijk YAML-bestand met alle testinstellingen. Indien opgegeven, worden alle testinstellingen in het testplan overschreven .
headless booleaan Optional. De standaardwaarde is waar. Als deze optie is ingesteld op false, wordt de browser weergegeven tijdens de testuitvoering.
locale touw Optional. De syntaxis van landinstellingen/cultuur waarin de testcases of teststappen worden geschreven. Indien niet opgegeven, CultureInfo.CurrentCulture wordt deze standaard gebruikt voor de landinstelling voor het parseren van de teststappen. Overwegingen voor regio en taal bekijken
recordVideo booleaan Optional. De standaardwaarde is vals. Als deze optie is ingesteld op waar, wordt een video-opname van de test vastgelegd.
timeout integer Optional. Time-outwaarde in milliseconden. De standaardwaarde is 30.000 milliseconden (30s). Als een bewerking langer duurt dan de time-outlimiet, eindigt de test in een fout.
powerFxTestTypes name value paar Optional. Een lijst met typenaam- en Power Fx-typedefinities. Zie powerFxTestTypes-voorbeeld
testFunctions description code paar Optional. Een lijst met beschrijvings- en Power Fx-functiedefinities. Zie testFunctions-voorbeeld

extensionModules

Bevat gegevens over extensies die u wilt inschakelen.

Vastgoed Typologie Description
enable bool Of extensiemodules al dan niet zijn ingeschakeld.
allowPowerFxNamespaces list Lijst met de PowerFx-naamruimten die u wilt inschakelen.
parameters sleutel-waardeparen Eigenschappen met waarden voor het beheren van extensiemodules. Op dit moment is alleen de Booleaanse enableDataverseFunctions parameter geldig voor dit.

In dit voorbeeld ziet u hoe u de PowerFx-naamruimte Preview inschakelt:

testSettings:
  extensionModules:
    enable: true
    allowPowerFxNamespaces:
    - Preview

Meer informatie over preview-functies

Overwegingen voor regio's en talen

Test Engine ondersteunt verschillende taal- en landinstellingen, zoals scheidingstekens voor decimalen en lijsten. De testSettings.locale eigenschap bepaalt dit gedrag. Zie Global Support in Microsoft Power Fx voor meer informatie.

Bekijk deze voorbeeldconfiguraties in de PowerApps-TestEngine GitHub-opslagplaats:

powerFxTestTypes-voorbeeld

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

In dit voorbeeld ziet u hoe u aangepaste Power Fx-typen definieert voor gebruik in uw testcases. Het ControlName type wordt gedefinieerd als een record met één Text veld, terwijl het Options type wordt gedefinieerd als een tabel met records, die elk een Name veld van het type Text en een veld van het Value type bevatten Number. Aangepaste typen kunnen worden gebruikt om complexere en specifieke testscenario's te maken, waardoor de flexibiliteit en kracht van uw testdefinities worden verbeterd.

testFunctions-voorbeeld

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

Deze voorbeelden van testfuncties laten zien hoe u aangepaste Power Fx-functies definieert voor gebruik in uw testcases. De WaitUntilVisible functie gebruikt een DOM-selector om te wachten totdat een opgegeven besturingselement zichtbaar is, met behulp van Playwright-acties. Met de functie GetOptions worden de opties voor een opgegeven besturingselement opgehaald uit een Model Driven App (MDA), waarbij het Power Fx-besturingselement wordt gebruikt. Deze aangepaste functies verbeteren de flexibiliteit en kracht van uw testdefinities, waardoor complexere en specifieke testscenario's mogelijk zijn.

BrowserConfiguration

Voor elke testSettings is ten minste één BrowserConfigurationvereist.

Vastgoed Typologie Description
browser touw Verplicht. De browser die moet worden gestart bij het testen. Moet overeenkomen met de browsers die worden ondersteund door Playwright.
device touw Optional. Het apparaat dat moet worden geëmuleren bij het starten van de browser. Moet overeenkomen met de apparaten die worden ondersteund door Playwright
screenHeight integer Optional. De hoogte van het scherm dat moet worden gebruikt bij het starten van de browser. Indien opgegeven, screenWidth moet ook worden opgegeven.
screenWidth integer Optional. De breedte van het scherm dat moet worden gebruikt bij het starten van de browser. Indien opgegeven, screenHeight moet ook worden opgegeven.

environmentVariables

U kunt verschillende typen waarden opslaan als omgevingswaarden, maar het meest voorkomende geval is het opslaan van referentiegegevens met een lijst met gebruikers.

users

Om ervoor te zorgen dat referenties veilig worden opgeslagen, verwijst de testdefinitie naar gebruikers met behulp van een personaName. Het opslaan van referenties in testplanbestanden wordt niet ondersteund.

Voorbeeld:

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

De personaName wordt gebruikt als onderdeel van de testdefinitie om aan te geven welke gebruiker de test uitvoert als.

Ondersteunde opslagmechanismen voor referenties

Als u referenties als omgevingsvariabelen wilt opslaan, kunt u deze als volgt instellen:

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

In de YAML moeten twee eigenschappen worden gedefinieerd om aan te geven dat de referenties van deze gebruiker worden opgeslagen in omgevingsvariabelen:

  • emailKey: De omgevingsvariabele die wordt gebruikt om de e-mail van de gebruiker op te slaan.

Voorbeeld van YAML:

    - personaName: "User1"
      emailKey: "user1Email"

Voorbeeld van PowerShell om gebruikersreferenties in te stellen op basis van YAML:

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

Zie ook

Overzicht van Power Apps Test Engine (preview)
Power Apps Test Engine Power Fx-functies (preview)