Mit Test Studio arbeiten

In diesem Schnellstart erstellen Sie Tests für eine Canvas-App namens Kudos. Sie können sich außerdem Testkonzepte näher ansehen und sie anwenden, um Tests für Ihre eigene Canvas-App zu schreiben. Die Beispiel-App Kudos ist Teil mehrerer Apps für die Mitarbeiterbindung, die im Rahmen des Employee Experience Starter Kit zum Download bereit stehen.

Sehen Sie sich dieses Video an, um zu erfahren, wie Sie mit Test Studio arbeiten:

Öffnen von Test Studio

  1. Melden Sie sich bei Power Apps an.

  2. Erstellen Sie eine neue App, oder bearbeiten Sie eine vorhanden App.

  3. Speichern Sie Ihre Apps auf Power Apps, um Test Studio zu öffnen.

    Hinweis

    Apps müssen gespeichert werden, bevor Sie Tests dafür schreiben können.

  4. Klicken Sie im linken Navigationsbereich auf die Option Erweiterte Tools.

  5. Klicken Sie auf Test öffnen, um Test Studio für diese Anwendung zu öffnen. Diese Aktion öffnet Test Studio in einer neuen Browser-Registerkarte.

    Öffnen von Test Studio

Hinweis

Die Tests werden im Publisher veröffentlicht und im App-Paket gespeichert. Das Exportieren und Importieren eines Canvas App-Pakets in eine andere Umgebung umfasst auch alle Testspezifikationen wie Testsuiten und Testfälle, die Sie erstellt haben.

Erstellen einer Testsammlung

Standardmäßig werden für Sie eine Testsammlung und ein Testfall in Test Studio erstellt. Einzelne Testfälle können mithilfe von Testsammlungen sortiert werden. Eine App kann eine oder auch mehrere Testsammlungen enthalten. Entweder verwenden Sie die Standardtestsammlung und den Standardtestfall, um sofort mit dem Schreiben von Tests zu beginnen, oder Sie erstellen eine neue Testsammlung.

  1. Klicken Sie auf Neue Sammlung.

  2. Füllen Sie die Felder für Name und Beschreibung der Testsammlung aus, indem Sie auf die entsprechenden Felder auf dem Hauptraster klicken.

    Neue Testsammlung

Erstellen eines Testfalls

Je nachdem, ob Sie Ihre Tests einzeln anordnen oder miteinander gruppieren möchten, können Sie auch mehrere Testfälle in einer Testsammlung erstellen. Mit jedem Testfall kann ein bestimmtes Feature oder ein bestimmter Teilbereich von Funktionen Ihrer App getestet werden.

  1. Wählen Sie eine Testsammlung aus.
  2. Klicken Sie im oberen Menü auf Neuer Fall, um einen neuen Testfall zu erstellen.
  3. Füllen Sie die Felder für Name und Beschreibung des Testfalls aus, indem Sie auf die entsprechenden Felder auf dem Hauptraster klicken.

Neuer Testfall

Aufzeichnen eines Testfalls

Ein Testfall besteht aus Testschritten, die Aktionen enthalten. Diese Aktionen werden mithilfe von Power Apps-Ausdrücken geschrieben, die eine Aufgabe ausführen. Sie können das Aufzeichnungstool verwenden, um die Testschritte automatisch generieren zu lassen, während Sie mit der App interagieren. Nach der Aufzeichnung können Sie den Testfall aktualisieren, neue Schritte hinzufügen, Schritte löschen und Testassertionen schreiben, um das Ergebnis Ihres Tests zu überprüfen.

Hinweis

Nur veröffentlichte Apps können im Aufzeichnungsmodus wiedergeben werden. Veröffentlichen Sie alle vor Kurzem an der App vorgenommenen Änderungen, bevor Sie mit der Aufzeichnung eines Testfalls beginnen. Wenn Sie eine Aufzeichnung beginnen, ohne aktuelle Änderungen veröffentlicht zu haben, wird im Aufzeichnungsmodus die zuletzt veröffentlichte Version der App wiedergeben.

  1. Klicken Sie in der oberen Menüleiste auf Aufzeichnen. Diese Aktion öffnet die veröffentlichte App mit Aufnahmemodus in einem neuen Browser-Register.

    Wichtig

    Aufzeichnungen innerhalb eines bestehenden Testfalls überschreiben alle bereits vorhandenen Testschritte.

    Aufzeichnen von Tests

  2. Interagieren Sie mit Ihrer App. Ihre Aktionen werden dann im linken Bereich aufgezeichnet.

  3. Klicken Sie auf Fertig, wenn Sie die Interaktionen abgeschlossen haben. Optional können Sie auch auf Abbrechen klicken, um zu Test Studio zurückzukehren, ohne dass Ihre Interaktionen aufgezeichnet werden.

    Speichern von Aufzeichnungen

  4. Sehen Sie sich die Testschritte und die Ausdrücke an, die in Test Studio automatisch für Sie generiert wurden.

  5. Bearbeiten Sie ggf. den Text der Schrittbeschreibung im Hauptraster. Sie können auch die Testschrittaktionen aktualisieren, indem Sie auf die Formel im Hauptraster klicken.

    Aktualisieren eines Testfalls

Hinzufügen von Testschritten und Testassertionen

Für jeden Testfall sollte es ein zu erwartendes Ergebnis geben. Im Kudos-Beispiel ist eines der erwarteten Ergebnisse für das Senden eines Lobs das Erstellen eines neuen Datensatzes in der Microsoft Dataverse (Dataverse)-Datenbank. Sie aktualisieren nun den Testfall und fügen zusätzliche Testschritte hinzu, um zu bestätigen, dass ein Datensatz erfolgreich erstellt wurde.

Befolgen Sie diese Schritte, um eine erfolgreiche Datensatzerstellung zu überprüfen:

  • Initialisieren Sie zu Beginn des Testfalls eine Variable für die Anzahl der Datensätze für das Senden eines Lobs in der Datenbank.
  • Initialisieren Sie am Ende des Testfalls eine Variable für die Anzahl der Datensätze für das Senden eines Lobs in der Datenbank.
  • Schreiben Sie einen Assertionsausdruck für den Test, um zu überprüfen, ob die Anzahl um 1 inkrementiert wurde. Wenn sich die Anzahl nicht um eins erhöht, schlägt die Testaussage fehl, und Ihr Testfall schlägt fehl.

So fügen Sie in der Kudos-App Testschritte und Testassertionen hinzu:

  1. Wählen Sie Schritt 1 oder einen Schritt aus, über dem Sie einen neuen Schritt einfügen möchten.

  2. Klicken Sie oben im Menü auf Insert a step above (Über diesem Schritt einen Schritt einfügen) oder auf die Option in der ausgewählten Zeile. Diese Aktion erzeugt einen leeren Schritt.

    Schritt einfügen

    Hinweis

    Wenn Sie auf die Option Insert a step above (Über diesem Schritt einen Schritt einfügen) klicken, wird oberhalb des aktuellen Schritts ein neuer, leerer Schritt eingefügt. Alternativ können Sie auch die Aktionen Assert, SetProperty, Select oder Trace verwenden. Dadurch wird jeweils ein Schritt mit entsprechender Aktionsformel hinzugefügt, die Sie bearbeiten können.

  3. Aktualisieren Sie die Beschreibung des Schritts. Beispiel: „Lobanzahl in der Datenbank“.

  4. Geben Sie in die Aktionseingabe einen Ausdruck oder eine Formel ein, um die Datensätze in der Datenbank vor der Ausführung des Tests zählen zu lassen.

    Sie können jeden beliebigen unterstützten Ausdruck verwenden. Sie können auch alle Datenquellen, Sammlungen, Variablen oder ausgeführten Flüsse abfragen, die in Ihrer App enthalten sind, und neue globale Variablen oder Sammlungen zur Verwendung in Ihren Tests erstellen.

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

    Lobanzahl vor dem Test

  8. Scrollen Sie im Testfall nach unten, und fügen Sie dort einen neuen Schritt ein, um die Datensätze in der Datenbank nach Abschluss des Tests zählen zu lassen.

    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)
    

    Lobanzahl nach der Testassertion

  10. Speichern Sie den Testfall in Test Studio im Menü oben rechts.

Wiedergeben Ihres Tests

Sie können Ihren aufgezeichneten Test wiedergeben, um die App-Funktionalität zu überprüfen. Entweder geben Sie alle Tests einer einzelnen Testsammlung oder einen einzelnen Testfall wieder.

Bevor Sie eine Aufzeichnung mit aktuellen Änderungen wiedergeben können, müssen Sie die App veröffentlichen:

Wiedergeben ohne Veröffentlichung

Wichtig

Wenn Sie die Veröffentlichung überspringen, werden in der Wiedergabe Ihrer Aufzeichnung aktuelle Teständerungen nicht berücksichtigt. In diesem Fall wird der zuletzt veröffentlichte Testfall oder die zuletzt veröffentlichte Testsammlung für die App wiedergegeben.

  1. Wählen Sie Veröffentlichen, um Ihren Test automatisch zu speichern und zu veröffentlichen.

    Änderungen veröffentlichen

  2. Wählen Sie entweder eine Testsammlung oder einen einzelnen Testfall aus.

  3. Wählen Sie Abspielen. Die veröffentlichte App wird im Wiedergabemodus geöffnet, und Sie können sich ansehen, wie Ihre Testschritte automatisch wiedergegeben werden. Wenn ein Testschritt erfolgreich ausgeführt wurde, wird dies durch ein grünes Häkchen angezeigt. Wenn ein Schritt fehlschlägt, erhält der Schritt eine rote Fehlerhervorhebung, und die entsprechende Fehlermeldung wird angezeigt.

    Wiedergabemodus

  4. Klicken Sie auf „Fertig“, um zu Test Studio zurückzukehren.

Assertionsfehler

In diesem Abschnitt ändern Sie die Testassertion, um zu sehen, was im Fall eines fehlgeschlagenen Tests geschieht:

  1. Bearbeiten Sie den Assertionsschritt, indem Sie auf das Ausdrucksfeld klicken.

  2. Ändern Sie in der Testaktion + 1 in + 2. Diese Aktualisierung bedeutet, dass der Test erwartet, dass zwei Datensätze erstellt werden, was nicht korrekt ist. Wenn der Test erfolgreich ist, sollte in der Datenbank lediglich ein Datensatz erstellt werden.

    Assert(kudosAfterTest = kudosBeforeTest + 2, "Kudos count incorrect. Expected : " & kudosBeforeTest + 2  & " Actual :" & kudosAfterTest)
    

    Geänderte Assert-Anweisung zum Überprüfen der Anzahlinkrementierung

  3. Wählen Sie Veröffentlichen aus.

  4. Wählen Sie Abspielen.

  5. Sehen Sie sich an, wie der Test wiedergeben wird. Der letzte Schritt schlägt nun fehl, und es wird ein Fehler sowie die Nachricht angezeigt, die Sie im Assertionsschritt angegeben haben.

    Wiedergabefehler

Wiedergeben von Tests in einem Browser

Sie können einen Link kopieren, um einen Test in einem separaten Browser außerhalb von Test Studio abzuspielen. Dies hilft bei der Integration Ihrer Tests in eine kontinuierliche Build- und Release-Pipeline wie Azure DevOps.

Der Wiedergabelink für einen ausgewählten Test wird beibehalten. Er ändert sich nicht pro Testsammlung oder Testfall. Sie können Ihre Tests aktualisieren, ohne Build- und Releaseprozesse ändern zu müssen.

So geben Sie Tests in einem Browser wieder:

  1. Wählen Sie im rechten Bereich eine Testsammlung oder einen Testfall aus.

  2. Wählen Sie Play-Link kopieren.

    Wiedergabelink kopieren

  3. Wenn es unveröffentlichte Änderungen gibt, werden Sie aufgefordert, Ihre Tests zu veröffentlichen.

    Veröffentlichen vor dem Kopieren des Links

  4. Sie können auswählen, dass der Veröffentlichungsprozess übersprungen und der Wiedergabelink kopiert wird. Neue Teständerungen werden nicht abgespielt, wenn Sie überspringen.

    Link kopieren

  5. Öffnen Sie einen Browser, und fügen Sie die URL in die Adressleiste ein, damit der Test wiedergegeben wird.

  6. Sehen Sie sich an, wie der Test wiedergeben wird.

Einrichten Ihrer Tests

Die Eigenschaft OnTestCaseStart einer Testsuite kann zur Einrichtung Ihres Tests verwendet werden. Der für diese Eigenschaft eingegebene Ausdruck wird für jeden Testfall in einer Testsuite ausgelöst, bevor die Ausführung des Falls beginnt. OnTestCaseStart hilft Ihnen zu vermeiden, dass Sie zu Beginn jedes Falls die gleichen Testschritte schreiben müssen. Sie können diese Eigenschaft anpassen, um Einrichtungsaufgaben auszuführen, die allen Fällen in der Suite gemeinsam sind, wie z.B:

  • Testausführung immer vom ersten Bildschirm aus starten.
  • Initialisierung gemeinsamer Sammlungen oder Variablen.
  • Abrufen von Testdaten aus einer Datenquelle für den aktuell ausgeführten Test

Der Datensatz TestCaseInfo enthält Details zum aktuellen Test, der gerade ausgeführt wird. Er enthält die folgenden Eigenschaften:

  • TestCaseName: Name des Testfalls
  • TestCaseDescription - die Beschreibung des Testfalls.
  • TestCaseId: ID des Testfalls
  • TestSuiteName: Name der Testsammlung, zu der der Fall gehört
  • TestSuiteDescription - die Beschreibung des Testfallsatzes.
  • TestSuiteId: ID der Testsammlung, zu der der Fall gehört

Im folgenden Beispiel passen Sie die Eigenschaft OnTestCaseStart so an, dass jeder Testfall mit dem ersten Bildschirm Ihrer Apps beginnt. Außerdem holen Sie die Testdaten aus einer Datenquelle, auf die in den Schritten für den Testfall Bezug genommen werden kann.

  1. Klicken Sie im linken Bereich auf Testen oder in der Sammlungskopfzeile auf Anzeigen.

    Testen oder Anzeigen der festgelegten Eigenschaft

  2. Wählen Sie die Aktion OnTestCaseStart.

  3. Geben Sie einen Ausdruck ein, um zum ersten Bildschirm zu navigieren und die Testdaten für Ihren Test abzurufen.

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

    Beispiel für OnTestCaseStart

Verarbeiten von Testergebnissen

Das bei der Wiedergabe von Tests in Test Studio sichtbare Testfenster ist bei Verwendung eines Browsers nicht sichtbar. Aufgrund dieses Verhaltens können Sie nicht feststellen, welcher spezifische Testschritt ausgeführt wird oder ob ein Test bestanden oder fehlgeschlagen ist.

Es gibt im Testobjekt jedoch zwei Eigenschaften namens OnTestCaseComplete und OnTestSuiteComplete mithilfe derer Sie die Testergebnisse außerhalb von Test Studio bestimmen können. Mit diesen Objekten können Sie die Ergebnisse Ihrer Tests verarbeiten. Wenn Sie Tests in eine kontinuierliche Build- und Releasepipeline wie Azure DevOps integrieren, können Sie mit diesen Eigenschaften bestimmen, ob Sie eine App-Bereitstellung fortsetzen sollten.

Der für diese Eigenschaften eingegebene Ausdruck wird ausgelöst, wenn ein jeweiliger Testfall oder eine Testsammlung abgeschlossen ist. Sie können diese Eigenschaften auch anpassen, sodass die Ergebnisse Ihrer Tests verarbeitet und z. B. an die folgenden Datenquellen oder Dienste gesendet werden:

  • SQL Server.
  • Dataverse
  • Power Automate.
  • E-Mail senden mithilfe von Office 365.

Diese Einstellungen gelten für alle Testsammlungen oder Testfälle in Ihrer App. Nach Abschluss einer Testsammlung oder aller Testfälle können Sie sich die Testergebnisse und gegebenenfalls in den Tests aufgetretene Ablaufverfolgungsmeldungen in den Datensätzen TestCaseResult und TestSuiteResult ansehen.

Im Datensatz TestCaseResult sind die folgenden Eigenschaften enthalten:

  • TestCaseName: Name des Testfalls
  • TestCaseDescription - die Beschreibung des Testfalls.
  • TestCaseId: ID des Testfalls
  • TestSuiteName: Name der Testsammlung, zu der der Fall gehört
  • TestSuiteDescription - die Beschreibung des Testfallsatzes.
  • TestSuiteId: ID der Testsammlung, zu der der Fall gehört
  • StartTime: Startzeit der Ausführung des Tests
  • EndTime: Endzeit der Ausführung des Tests
  • Traces: Ergebnisse aller Testassertionen und gegebenenfalls aufgetretene Meldungen der Nachverfolgungsfunktion
  • Success: Gibt an, ob der Testfall erfolgreich abgeschlossen wurde
  • TestFailureMessage: Fehlermeldung, wenn der Testfall fehlschlägt

Im Datensatz TestSuiteResult sind die folgenden Eigenschaften enthalten:

  • TestSuiteName: Name der Testsammlung
  • TestSuiteDescription - die Beschreibung des Testfallsatzes.
  • TestSuiteId: ID der Testsammlung
  • StartTime: Startzeit der Ausführung der Testsammlung
  • EndTime: Endzeit der Ausführung der Testsammlung
  • TestsPassed: Anzahl der Testfälle, die innerhalb einer Sammlung erfolgreich abgeschlossen wurden
  • TestsFailed: Anzahl der Testfälle, die innerhalb einer Sammlung fehlgeschlagen sind

In diesem Schnellstart erstellen Sie zwei benutzerdefinierte Tabellen in der Dataverse Datenbank, um die Testergebnisse zu speichern, indem die Eigenschaften OnTestCaseComplete und OnTestSuiteComplete angepasst werden:

  1. Klicken Sie im linken Bereich auf Testen oder in der Sammlungskopfzeile auf Anzeigen.

    Testen oder Anzeigen der festgelegten Eigenschaft

  2. Klicken Sie auf die Aktion OnTestCaseComplete.

  3. Geben Sie einen Ausdruck ein, um die Ergebnisse Ihres Tests zu verarbeiten. Im folgenden Beispiel werden die Ergebnisse aller Testfälle in der benutzerdefinierten AppTestResults-Entität in Dataverse gespeichert. Die Testergebnisse können optional auch in SQL, SharePoint oder einer beliebigen anderen Datenquelle gespeichert werden. Möglicherweise müssen Sie das Feld für die Ablaufverfolgung in Ihrer Datenquelle entsprechend festlegen oder vergrößern.

    Hinweis

    Die folgenden Beispiele verbinden sich mit Microsoft Dataverse. Sie können eine einfache App oder eine App von Grund auf neu erstellen mit Dataverse. Sehen Sie sich außerdem die Referenz zur Patchfunktion an, um weitere Informationen für das Bearbeiten der Datensätze einer Datenquelle zu erhalten, die in den folgenden Beispielen verwendet werden.

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

    OnTestCaseComplete Beispiel

  4. Klicken Sie auf die Aktion OnTestSuiteComplete.

  5. Geben Sie einen Ausdruck ein, um die Ergebnisse Ihres Tests zu verarbeiten. Im folgenden Beispiel werden die Ergebnisse aller Testfälle in der benutzerdefinierten AppTestSuiteResults-Tabelle in Dataverse gespeichert.

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

    OnTestSuiteComplete Beispiel

Weitere Beispiele für Ausdrücke, die Sie in diesen Eigenschaften verwenden könnten, sind die Folgenden:

  • Senden Sie Ergebnisse an einen Fluss in Power Automate.

    MyTestResultsFlow.Run(JSON(TestCaseResult))
    
  • Senden der Ergebnisse per E-Mail.

    Office365.SendMailV2("someone@example.com", "Test case results", JSON(TestCaseResult, JSONFormat.IndentFour))
    
  • Erhalten einer App-Benachrichtigung mit dem Testergebnis.

    Sie könnten beispielsweise bei der Wiedergabe des Tests in einem Browser außerhalb von Test Studio eine Benachrichtigung erhalten, sobald der Test abgeschlossen ist.

    Notify(TestCaseResult.TestCaseName & " : "
            & If( TestCaseResult.Success
                , " Passed"
                , TestCaseResult.TestFailureMessage)
            ,If(  TestCaseResult.Success
                , NotificationType.Success
                , NotificationType.Error)
    )
    

Testfunktionen

Zusätzlich zu den in Power Apps verfügbaren Funktionen sind im Folgenden allgemeine Funktionen aufgeführt, die Sie normalerweise beim Verfassen von Tests verwenden werden:

Nächste Schritte

Hinweis

Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)

Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).