Werken met Test Studio
In deze snelstart maakt u tests voor een canvas-app met de naam Kudo's. U kunt ook testconcepten verkennen en ontdekken, en deze toepassen op het schrijven van tests voor uw eigen canvas-apps. De voorbeeld-app Kudo's maakt deel uit van een pakket met apps voor werknemersbetrokkenheid dat kan worden gedownload van Employee Experience Starter Kit.
Bekijk deze video om te leren hoe u werkt met Test Studio:
Test Studio openen
Meld u aan bij Power Apps.
Maak een nieuwe app of bewerk een bestaande app.
Sla uw app op in Power Apps om Test Studio te openen.
Notitie
U moet een app opslaan voordat u tests voor de app kunt schrijven.
Selecteer in het linkernavigatiedeelvenster Geavanceerde hulpprogramma's.
Selecteer Tests openen om Test Studio te openen voor deze app. Met deze actie wordt Test Studio geopend in een nieuw browsertabblad.
Notitie
Tests worden gepubliceerd en opgeslagen in het app-pakket. Het exporteren en importeren van een canvas-app-pakket naar een andere omgeving omvat ook alle testdefinities, zoals testpakketten en testcases die u hebt gemaakt.
Een testpakket maken
Er worden in Test Studio standaard een testpakket en testcase voor u gemaakt. Met testpakketten worden uw testcases geordend. Een app kan een of meer testpakketten bevatten. U kunt het standaardtestpakket en de standaardtestcase gebruiken om meteen met het schrijven van uw tests te beginnen of u kunt een nieuw testpakket maken.
Selecteer Nieuw pakket.
Werk de naam en beschrijving van het pakket bij door de velden in het hoofdraster te selecteren.
Een testcase maken
Afhankelijk van de wijze waarop u uw tests wilt ordenen of groeperen, kunt u in een testpakket meerdere testcases maken. Met elke testcase kan een specifieke functie of een subset van functionaliteiten in uw app worden getest.
- Selecteer een testpakket.
- Selecteer Nieuwe testcase in het menu bovenaan om een nieuwe testcase te maken.
- Werk de naam en beschrijving van de testcase bij door de velden in het hoofdraster te selecteren.
Een testcase opnemen
Een testcase bestaat uit teststappen die acties bevatten. Testacties worden geschreven met behulp van Power Apps-expressies waarmee een taak wordt uitgevoerd. U kunt de recorder gebruiken om automatisch de teststappen te genereren terwijl u uw app gebruikt. Nadat u een testcase hebt opgenomen, kunt u de testcase bijwerken, nieuwe stappen toevoegen, stappen verwijderen en testverklaringen schrijven om het resultaat van uw test te controleren.
Notitie
Alleen een gepubliceerde app wordt in de opnamemodus afgespeeld. Publiceer recente wijzigingen in de app voordat u begint met het opnemen van een testcase. Wanneer u een opname maakt zonder dat recente wijzigingen zijn gepubliceerd, wordt de laatst gepubliceerde versie van de app in de opnamemodus afgespeeld.
Selecteer Opnemen in het menu boven aan het scherm. Met deze actie wordt in een nieuw browsertabblad de gepubliceerde app geopend in de opnamemodus.
Belangrijk
Wanneer u een bestaande testcase opneemt, worden bestaande, al aanwezige, teststappen overschreven.
Gebruik uw app. Uw acties worden opgenomen in het linkerdeelvenster.
Zodra u klaar bent met het gebruiken van de app, selecteert u Gereed. U kunt eventueel Annuleren selecteren om terug te gaan naar Test Studio zonder dat uw gebruikshandelingen worden opgenomen.
Bekijk de teststappen en de expressies die automatisch voor u zijn gegenereerd in Test Studio.
Bewerk zo nodig de beschrijving van de stap in het hoofdraster. U kunt ook de acties voor de teststappen bijwerken door de formule in het hoofdraster te selecteren.
Teststappen en testverklaringen toevoegen
Elke testcase moet een verwacht resultaat hebben. In het Kudo's-voorbeeld is een van de verwachte resultaten van het verzenden van een kudo dat er een nieuwe record wordt gemaakt in de Microsoft Dataverse-database (Dataverse). U gaat nu de testcase bijwerken en aanvullende teststappen toevoegen om te controleren of een record is gemaakt.
Volg deze stappen om te controleren of de record is gemaakt:
- Initialiseer een variabele voor het aantal kudo-records in de database aan het begin van de testcase.
- Initialiseer een variabele voor het aantal kudo-records in de database aan het einde van de testcase.
- Schrijf een expressie voor een testverklaring waarmee moet worden gecontroleerd of het aantal met één is verhoogd. Als het aantal niet met één is verhoogd, is de testverklaring onwaar en mislukt uw testcase.
U kunt als volgt teststappen en testverklaringen in de Kudo's-app toevoegen:
Selecteer Stap 1 of de stap waarboven u een nieuwe stap wilt invoegen.
Selecteer Hierboven een stap invoegen in het menu bovenaan of selecteer de optie in de actieve rij. Met deze actie wordt een lege stap gemaakt.
Notitie
Wanneer u Hierboven een stap invoegen selecteert, wordt er een nieuwe, lege stap toegevoegd boven de huidige stap. U kunt in plaats daarvan ook de acties Assert, SetProperty, Select of Trace gebruiken. Hiermee wordt een stap toegevoegd met een bijbehorende actieformule die u kunt bewerken.
Werk de beschrijving van de stap bij. Bijvoorbeeld "Kudo's in database tellen".
Geef in de invoer voor de actie een expressie of formule op waarmee de records in de database worden geteld voordat u de test uitvoert.
U kunt elke ondersteunde expressie gebruiken. U kunt ook een query uitvoeren voor gegevensbronnen, verzamelingen, variabelen of stromen die zijn opgenomen in uw app. Daarnaast kunt u nieuwe globale variabelen of verzamelingen maken die u in uw tests kunt gebruiken.
Set(kudosBeforeTest, CountRows(Filter(Kudos, Receiver.Email = "someone@example.com")))```
Select Step 2 or the step above which you want to insert a new step.
Select Insert a step above from the top menu or by selecting the option from the active row. This action creates an empty step.
Enter an expression or formula in the action input to Trace and write the kudosBeforeTest value to test the results record.
Trace("kudosBeforeTest : " & kudosBeforeTest);
Ga naar beneden in de testcase en voeg een nieuwe stap toe om de records in de database te tellen nadat de test is uitgevoerd.
Set(kudosAfterTest, CountRows(Filter(Kudos, Receiver.Email = "someone@example.com")))```
Add a final step to validate that the record count in the database has increased by a count of 1, and enter the following assertion action to verify:
Assert(kudosAfterTest = kudosBeforeTest + 1, "Kudos count incorrect. Expected : " & kudosBeforeTest + 1 & " Actual :" & kudosAfterTest)
Sla de testcase op in het menu rechtsboven in Test Studio.
Uw test afspelen
U kunt uw opgenomen test afspelen om de functionaliteit van de app te controleren. U kunt alle tests in één testpakket of één testcase afspelen.
Voordat u de opname afspeelt met recente wijzigingen moet u de app publiceren:
Belangrijk
Als u het publiceren overslaat, worden de recente testwijzigingen niet meegenomen bij het afspelen van de opname. De laatst gepubliceerde testcase of het laatst gepubliceerde testpakket voor de app wordt afgespeeld.
Selecteer Publiceren om uw test automatisch op te slaan en te publiceren.
Selecteer een testpakket of één testcase.
Selecteer Afspelen. De gepubliceerde app wordt geopend in de modus Afspelen en u kunt zien hoe de teststappen automatisch worden afgespeeld. Een groen vinkje geeft aan wanneer een teststap is uitgevoerd. Als een stap mislukt, wordt er een foutindicator samen met een foutbericht weergegeven.
Selecteer Gereed om terug te keren naar Test Studio.
Mislukte verklaring
In dit gedeelte wijzigt u de testverklaring om te zien wat er gebeurt bij een mislukte test:
Bewerk de verklaringsstap door het vak voor de expressie te selecteren.
Wijzig in de testactie
+ 1
in+ 2
. Deze update houdt in dat er volgens de test wordt verwacht dat er twee records worden gemaakt, hetgeen onjuist is. Als de test is geslaagd, wordt er slechts één record gemaakt in de database.Assert(kudosAfterTest = kudosBeforeTest + 2, "Kudos count incorrect. Expected : " & kudosBeforeTest + 2 & " Actual :" & kudosAfterTest)
Selecteer Publiceren.
Selecteer Afspelen.
Bekijk hoe de test wordt afgespeeld. De laatste stap mislukt nu en er wordt een fout weergegeven met het bericht dat u in de verklaringsstap hebt opgegeven.
Tests afspelen in een browser
U kunt een koppeling kopiëren, zodat u een test in een afzonderlijke browser buiten Test Studio kunt afspelen. Op die manier kunt u uw tests integreren in een continue build- en releasepijplijn, zoals Azure DevOps.
De koppeling voor het afspelen voor de geselecteerde test blijft behouden. Deze wordt niet gewijzigd voor het testpakket of de testcase. U kunt uw tests bijwerken zonder dat u de build- en releaseprocessen hoeft te wijzigen.
U kunt als volgt tests afspelen in uw browser:
Selecteer een testpakket of testcase in het rechterdeelvenster.
Selecteer Koppeling voor afspelen kopiëren.
U wordt gevraagd om uw tests te publiceren als er niet-gepubliceerde wijzigingen zijn.
U kunt ervoor kiezen om het publiceren over te slaan en de koppeling voor afspelen te kopiëren. Nieuwe wijzigingen voor de test worden niet afgespeeld als u het publiceren overslaat.
Open een browser en plak de URL in de adresbalk om de test af te spelen.
Bekijk hoe de test wordt afgespeeld.
Uw tests instellen
De eigenschap OnTestCaseStart van een testsuite kan worden gebruikt om uw test in te stellen. De expressie die voor deze eigenschap is ingevoerd, wordt geactiveerd voor alle testcases in een pakket voordat de case wordt uitgevoerd. OnTestCaseStart helpt u voorkomen dat u aan het begin van elke case dezelfde teststappen schrijft. U kunt deze eigenschap aanpassen om insteltaken uit te voeren die in alle cases in de suite voorkomen, zoals:
- Start de testuitvoering altijd vanaf het eerste scherm.
- Initialiseer algemene verzamelingen of variabelen.
- Testgegevens ophalen uit een gegevensbron voor de huidige uitvoerende test
De TestCaseInfo-record bevat details voor de huidige test die wordt uitgevoerd. Deze bevat de volgende eigenschappen:
- TestCaseName: de naam van de testcase.
- TestCaseDescription: de beschrijving van de testcase.
- TestCaseId: de id van de testcase.
- TestSuiteName: de naam van het testpakket waartoe de testcase behoort.
- TestSuiteDescription: de beschrijving van de testsuite.
- TestSuiteId: de id van het testpakket waartoe de testcase behoort.
In het onderstaande voorbeeld past u de eigenschap OnTestCaseStart aan zodat elke testcase begint vanuit het eerste scherm in uw app. U haalt ook de testgegevens op uit een gegevensbron waarnaar kan worden verwezen in de stappen voor de testcase.
Selecteer Test in het linkerdeelvenster of Weergave in de koptekst voor het pakket.
Selecteer de actie OnTestCaseStart.
Voer een uitdrukking in om naar het eerste scherm te navigeren en de testgegevens voor uw test op te halen.
//Start every cases on the first screen in the Kudos app Navigate('Dashboard Screen'); //Initialize my test data for the current case. Set(currentTestData, LookUp(KudosTestData, TestCase = TestCaseInfo.TestCaseName)); //Set kudosBeforeTest to 0 Set(kudosBeforeTest, 0)
Testresultaten verwerken
Het testvenster dat wordt weergegeven wanneer u tests afspeelt in Test Studio, wordt niet getoond wanneer u een browser gebruikt. Als gevolg hiervan kunt u niet vaststellen welke specifieke teststap wordt uitgevoerd en of een test is geslaagd of mislukt.
Als u de testresultaten wilt bepalen buiten Test Studio, zijn er twee eigenschappen met de naam OnTestCaseComplete en OnTestSuiteComplete beschikbaar in het testobject dat u kunt gebruiken om de resultaten van uw tests te verwerken. Wanneer u tests integreert in een continue build- en releasepijplijn, zoals Azure DevOps, kunnen deze eigenschappen worden gebruikt om te bepalen of u moet doorgaan met de implementatie van de app.
De expressie die wordt ingevoerd voor deze eigenschappen wordt geactiveerd wanneer elke testcase of elk testpakket is voltooid. U kunt deze eigenschappen aanpassen, zodat de resultaten van uw tests worden verwerkt en naar verschillende gegevensbronnen of services worden verzonden, zoals:
- SQL Server.
- Dataverse.
- Power Automate.
- E-mail verzenden met Office 365.
Deze instellingen zijn van toepassing op elk testpakket of elke testcase in uw app. Nadat een testpakket of testcase is voltooid, worden de testresultaten en Trace-berichten die in de tests zijn opgenomen, vermeld in de records TestCaseResult en TestSuiteResult.
De record TestCaseResult bevat de volgende eigenschappen:
- TestCaseName: de naam van de testcase.
- TestCaseDescription: de beschrijving van de testcase.
- TestCaseId: de id van de testcase.
- TestSuiteName: de naam van het testpakket waartoe de testcase behoort.
- TestSuiteDescription: de beschrijving van de testsuite.
- TestSuiteId: de id van het testpakket waartoe de testcase behoort.
- StartTime: het tijdstip waarop de uitvoerbewerking van de test is gestart.
- EndTime: het tijdstip waarop de uitvoerbewerking van de test is geëindigd.
- Traces: het resultaat van de testverklaringen en eventuele berichten in de functie Trace.
- Success: geeft aan of de testcase is uitgevoerd.
- TestFailureMessage: het foutbericht als de testcase is mislukt.
De record TestSuiteResult bevat de volgende eigenschappen:
- TestSuiteName: de naam van het testpakket.
- TestSuiteDescription: de beschrijving van de testsuite.
- TestSuiteId: de id van het testpakket.
- StartTime: het tijdstip waarop de uitvoerbewerking van het testpakket is gestart.
- EndTime: het tijdstip waarop de uitvoerbewerking van het testpakket is geëindigd.
- TestsPassed: het aantal testcases in het pakket dat is uitgevoerd.
- TestsFailed: het aantal testcases in het pakket dat is mislukt.
In deze snelstart maakt u twee aangepaste tabellen in de Dataverse-database voor het opslaan van de testresultaten door de eigenschappen OnTestCaseComplete en OnTestSuiteComplete aan te passen:
Selecteer Test in het linkerdeelvenster of Weergave in de koptekst voor het pakket.
Selecteer de actie OnTestCaseComplete.
Voer een expressie in om de resultaten van uw test te verwerken. In het volgende voorbeeld worden de resultaten van elke testcase opgeslagen in de aangepaste tabel AppTestResults in Dataverse. De testresultaten kunnen eventueel worden opgeslagen in SQL, SharePoint of een andere gegevensbron. Mogelijk moet u het veld Trace in uw gegevensbron, indien nodig, instellen of verhogen.
Notitie
De volgende voorbeelden maken verbinding met Microsoft Dataverse. U kunt een eenvoudige app maken of een volledig nieuwe app ontwikkelen met Dataverse. Raadpleeg ook de naslaginformatie over de functie Patch voor meer informatie om records van een gegevensbron te wijzigen die in de volgende voorbeelden worden gebruikt.
//Save to Dataverse Patch(AppTestResults , Defaults(AppTestResults) , { TestPass: TestCaseResult.TestCaseName & ":" & Text(Now()) ,TestSuiteId: TestCaseResult.TestSuiteId ,TestSuiteName: TestCaseResult.TestSuiteName ,TestCaseId: TestCaseResult.TestCaseId ,TestCaseName: TestCaseResult.TestCaseName ,StartTime: TestCaseResult.StartTime ,EndTime: TestCaseResult.EndTime ,TestSuccess: TestCaseResult.Success ,TestTraces: JSON(TestCaseResult.Traces) ,TestFailureMessage: TestCaseResult.TestFailureMessage } );
Selecteer de actie OnTestSuiteComplete.
Voer een expressie in om de resultaten van uw test te verwerken. In het volgende voorbeeld slaat u de resultaten van elke testcase op in de aangepaste tabel AppTestSuiteResults in Dataverse.
//Save to Dataverse Patch(AppTestSuiteResults , Defaults(AppTestSuiteResults) , { TestSuiteId: TestSuiteResult.TestSuiteId ,TestSuiteName: TestSuiteResult.TestSuiteName ,StartTime: TestSuiteResult.StartTime ,EndTime: TestSuiteResult.EndTime ,TestPassCount: TestSuiteResult.TestsPassed ,TestFailCount: TestSuiteResult.TestsFailed } );
Andere voorbeelden van expressies die u in deze eigenschappen kunt gebruiken:
Verzend resultaten naar een stroom in Power Automate.
MyTestResultsFlow.Run(JSON(TestCaseResult))
Verzend uw resultaten per e-mail.
Office365.SendMailV2("someone@example.com", "Test case results", JSON(TestCaseResult, JSONFormat.IndentFour))
Ontvang een app-melding van het testresultaat.
U kunt bijvoorbeeld een melding ontvangen nadat de test is voltooid, wanneer u de test buiten Test Studio afspeelt in een browser.
Notify(TestCaseResult.TestCaseName & " : " & If( TestCaseResult.Success , " Passed" , TestCaseResult.TestFailureMessage) ,If( TestCaseResult.Success , NotificationType.Success , NotificationType.Error) )
Functies voor tests
Naast de functies die in Power Apps beschikbaar zijn, ziet u hieronder veelvoorkomende functies die u doorgaans gebruikt bij het ontwerpen van testen.
Volgende stappen
Notitie
Laat ons uw taalvoorkeuren voor documentatie weten! Beantwoord een korte enquête. (houd er rekening mee dat deze in het Engels is)
De enquête duurt ongeveer zeven minuten. Er worden geen persoonlijke gegevens verzameld (privacyverklaring).