Delen via


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

  1. Meld u aan bij Power Apps.

  2. Maak een nieuwe app of bewerk een bestaande app.

  3. 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.

  4. Selecteer in het linkernavigatiedeelvenster Geavanceerde hulpprogramma's.

  5. Selecteer Tests openen om Test Studio te openen voor deze app. Met deze actie wordt Test Studio geopend in een nieuw browsertabblad.

    Test Studio openen.

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.

  1. Selecteer Nieuw pakket.

  2. Werk de naam en beschrijving van het pakket bij door de velden in het hoofdraster te selecteren.

    Nieuw testpakket.

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.

  1. Selecteer een testpakket.
  2. Selecteer Nieuwe testcase in het menu bovenaan om een nieuwe testcase te maken.
  3. Werk de naam en beschrijving van de testcase bij door de velden in het hoofdraster te selecteren.

Nieuwe testcase.

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.

  1. 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.

    Tests opnemen.

  2. Gebruik uw app. Uw acties worden opgenomen in het linkerdeelvenster.

  3. 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.

    Opname stoppen.

  4. Bekijk de teststappen en de expressies die automatisch voor u zijn gegenereerd in Test Studio.

  5. 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.

    Testcase bijwerken.

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:

  1. Selecteer Stap 1 of de stap waarboven u een nieuwe stap wilt invoegen.

  2. 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.

    Stap invoegen.

    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.

  3. Werk de beschrijving van de stap bij. Bijvoorbeeld "Kudo's in database tellen".

  4. 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")))```
    
    
  5. Select Step 2 or the step above which you want to insert a new step.

  6. Select Insert a step above from the top menu or by selecting the option from the active row. This action creates an empty step.

  7. Enter an expression or formula in the action input to Trace and write the kudosBeforeTest value to test the results record.

    Trace("kudosBeforeTest : " & kudosBeforeTest);
    

    Kudo's voordat de test wordt uitgevoerd.

  8. 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")))```
    
    
  9. 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)
    

    Kudo's na de testverklaring.

  10. 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:

Afspelen zonder 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.

  1. Selecteer Publiceren om uw test automatisch op te slaan en te publiceren.

    Wijzigingen publiceren.

  2. Selecteer een testpakket of één testcase.

  3. 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.

    Modus Afspelen.

  4. 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:

  1. Bewerk de verklaringsstap door het vak voor de expressie te selecteren.

  2. 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)
    

    Bijwerken van aantal voor verklaring.

  3. Selecteer Publiceren.

  4. Selecteer Afspelen.

  5. 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.

    Fout bij het afspelen.

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:

  1. Selecteer een testpakket of testcase in het rechterdeelvenster.

  2. Selecteer Koppeling voor afspelen kopiëren.

    Koppeling voor afspelen kopiëren.

  3. U wordt gevraagd om uw tests te publiceren als er niet-gepubliceerde wijzigingen zijn.

    Publiceren voordat u de koppeling kopieert.

  4. 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.

    Gekopieerde koppeling afspelen.

  5. Open een browser en plak de URL in de adresbalk om de test af te spelen.

  6. 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.

  1. Selecteer Test in het linkerdeelvenster of Weergave in de koptekst voor het pakket.

    Eigenschap instellen voor test of weergave.

  2. Selecteer de actie OnTestCaseStart.

  3. 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)
    

    OnTestCaseStart-voorbeeld.

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:

  1. Selecteer Test in het linkerdeelvenster of Weergave in de koptekst voor het pakket.

    Eigenschap instellen voor test of weergave.

  2. Selecteer de actie OnTestCaseComplete.

  3. 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
    }
    );
    

    Voorbeeld OnTestCaseComplete.

  4. Selecteer de actie OnTestSuiteComplete.

  5. 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
        }
    );
    

    Voorbeeld OnTestSuiteComplete.

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