Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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.
Op oplossingen gebaseerde apps (aanbevolen)
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:
- Open de oplossing met uw app in Power Apps
- 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:
- De app zoeken in de Lijst met Power Apps
- 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
-
TestStepskan 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:
- Voor regio's die puntkomma's gebruiken als lijstscheidingstekens
- Voor regio's die komma's gebruiken als scheidingstekens voor decimalen
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)