Power Apps YAML-indeling testen (afgeschaft)

Opmerking

De test-engine is afgeschaft en wordt verwijderd in een toekomstige release. Gebruik Power Platform Playwright-voorbeelden voor testautomatiseringsmogelijkheden in Power Platform en Dynamics 365-services.

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

Eigenschap Beschrijving
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.

Eigenschap Type Beschrijving
persona string Vereist. 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 Vereist. Definieert testcases in het testpakket. Testgevallen in testsuites worden opeenvolgend uitgevoerd. De app-status blijft behouden in alle testcases in een suite.
testSuiteName string Vereist. De naam van de testsuite.
appLogicalName string Optioneel. 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 Optioneel. 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 Optioneel. Definieert netwerkaanvraagsimuleerden die nodig zijn voor de test.
onTestCaseComplete string Optioneel. Definieert de stappen die moeten worden geactiveerd voor elke testcase in een suite nadat de aanvraag is uitgevoerd.
onTestCaseStart string Optioneel. Definieert de stappen die moeten worden geactiveerd voor elke testcase in een suite voordat de aanvraag wordt uitgevoerd.
onTestSuiteComplete string Optioneel. Definieert de stappen die moeten worden geactiveerd nadat de suite is uitgevoerd.
testSuiteDescription string Optioneel. 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. Zoek de app in de Power Apps lijst
  2. Details openen en de GUID van de app-id noteren

NetworkRequestMocks

Eigenschap Type Beschrijving
requestURL string Vereist. De aanvraag-URL die een mock-antwoord krijgt. Glob-patronen worden geaccepteerd
responseDataFile string Vereist. Een tekstbestand met de inhoud van het gesimuleerde antwoord. Alle tekst in dit bestand wordt gelezen als het antwoord
headers matrix Optioneel. Een lijst met koptekstvelden in de aanvraag in de indeling [fieldName: fieldValue]
method string Optioneel. De methode van de aanvraag (GET, POST, enzovoort)
requestBodyFile string Optioneel. 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

Eigenschap Type Beschrijving
testCaseName string Vereist. De naam van de testcase die wordt gebruikt bij het rapporteren van geslaagde en mislukte pogingen
testSteps TestSteps Vereist. Een set Power Fx-functies die de stappen beschrijven die nodig zijn om de testcase uit te voeren. Zie teststeps-voorbeeld
testCaseDescription Nee Optioneel. 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.

Eigenschap Type Beschrijving
browserConfigurations BrowserConfiguration[] Vereist. Een lijst met browserconfiguraties die moeten worden getest. Er moet ten minste één browser worden opgegeven.
extensionModules extensionModules Optioneel. Bevat gegevens over extensies die u wilt inschakelen.
filePath string Optioneel. Het bestandspad naar een afzonderlijk YAML-bestand met alle testinstellingen. Indien opgegeven, worden alle testinstellingen in het testplan overschreven .
headless booleaans Optioneel. De standaardwaarde is waar. Als deze optie is ingesteld op false, wordt de browser weergegeven tijdens de testuitvoering.
locale string Optioneel. 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 booleaans Optioneel. De standaardwaarde is vals. Als deze optie is ingesteld op waar, wordt een video-opname van de test vastgelegd.
timeout geheel getal Optioneel. 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 Optioneel. Een lijst met typenaam- en Power Fx-typedefinities. Zie powerFxTestTypes-voorbeeld
testFunctions description code paar Optioneel. Een lijst met beschrijvings- en Power Fx-functiedefinities. Zie testFunctions-voorbeeld

extensionModules

Bevat gegevens over extensies die u wilt inschakelen.

Eigenschap Type Beschrijving
enable bool Of extensiemodules al dan niet zijn ingeschakeld.
allowPowerFxNamespaces lijst 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 opslagplaats PowerApps-TestEngine GitHub:

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.

Eigenschap Type Beschrijving
browser string Vereist. De browser die moet worden gestart bij het testen. Moet overeenkomen met de browsers die worden ondersteund door Playwright.
device string Optioneel. Het apparaat dat moet worden geëmuleren bij het starten van de browser. Moet overeenkomen met de apparaten die worden ondersteund door Playwright
screenHeight geheel getal Optioneel. De hoogte van het scherm dat moet worden gebruikt bij het starten van de browser. Indien opgegeven, screenWidth moet ook worden opgegeven.
screenWidth geheel getal Optioneel. 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 (afgeschaft)
Power Apps Test Engine Power Fx-functies (verouderd)