Best Practices | Aufzeichnen | Bezeichner
Lassen Sie uns für einen Moment auf technische Details eingehen. Wenn Sie Ihre Applikation aufzeichnen, um Module zu erstellen, wählen Sie Bezeichner für Ihre Bildschirmelemente aus. Diese Bildschirmelemente werden als Controls bezeichnet. Zur Laufzeit verwendet Tosca die von Ihnen ausgewählten Bezeichner, um Ihre zu testenden Controls zu finden. Dieses Kapitel erläutert die verschiedenen Identifizierungsmethoden und wann sie verwendet werden. Wir haben auch einige Tipps und Tricks, um Ihre Bezeichner über Tests hinweg eindeutig und stabil zu halten.
Identifizierungsmethoden
Tosca bietet verschiedene Möglichkeiten, Controls zu identifizieren:
-
Über Eigenschaften, wobei Sie ein Control anhand seiner technischen Eigenschaften im Applikationscode identifizieren. In der Regel sind Eigenschaften der schnellste und einfachste Weg, um Controls zu identifizieren. Wir empfehlen Ihnen, diese Methode immer zuerst auszuprobieren.
-
Über den Index, wobei Sie ein Control anhand seiner Position im Index einer Seite identifizieren. Dies ist eine gute Lösung für Controls, die an mehreren Stellen auf demselben Bildschirm vorhanden sind.
-
Über Anker, wobei Sie ein Control anhand seiner Lage relativ zu anderen Controls („Ankern“) identifizieren. Wir empfehlen Ihnen, Anker nur für Nicht-Webapplikationen zu verwenden. In einem modernen Webkontext kann es zu schwierig sein, Anker zu finden, die durchweg stabil sind.
-
Über Bilder, wobei Sie ein Control anhand eines oder mehrerer Screenshots identifizieren. Wir empfehlen diese Methode für Controls, bei denen keine andere Lösung funktioniert.
Tipps und Tricks
Unabhängig von der von Ihnen gewählten Identifizierungsmethode müssen alle Bezeichner die folgenden Kriterien erfüllen:
-
Sie sind eindeutig für das Control. Wenn sie es nicht sind, kann Tosca das richtige Control zur Laufzeit nicht finden, geschweige denn steuern.
-
Sie sind stabil. Wenn sie es nicht sind, findet Tosca das Control möglicherweise, aber nicht bei jedem Testdurchlauf. Im schlimmsten Fall funktioniert der Bezeichner nur einmal, während der Aufzeichnung. Alles in allem führen instabile Controls zu instabilen Tests und uneindeutigen Ergebnissen.
Controls eindeutig machen
Um Controls eindeutig zu machen, probieren Sie Folgendes aus:
-
Wählen Sie mehrere Eigenschaften aus, um eine Kombination zu erstellen, die für ein Control eindeutig ist.
-
Wenn Sie keine praktikable Kombination von Eigenschaften finden können, verwenden Sie ein übergeordnetes Control zur Identifizierung. Der übergeordnete Knoten verfügt möglicherweise über eine eindeutige ID, wodurch auch das Control selbst eindeutig ist. Wählen Sie zuerst den übergeordneten Knoten und dann das Control selbst aus.
Übrigens ist das richtige übergeordnete Element möglicherweise nicht das Control, das sich in der Hierarchie direkt oberhalb befindet. Um das richtige übergeordnete Element zu finden, aktivieren Sie Highlight Selection in der XScan Advanced View und bewegen Sie sich im Aufzeichnungsfenster durch die übergeordneten Knoten. Der XScan hebt dann den jeweiligen Bereich in Ihrer Applikation hervor.
-
Wenn Ihre Applikation ein Pop-up als Teil einer Seite lädt, müssen Sie möglicherweise auch ein übergeordnetes Element zur Identifizierung verwenden. Ein gutes Beispiel sind eingebettete Pop-ups in Salesforce. Die Controls im Pop-up können innerhalb des Pop-ups selbst eindeutig sein, aber nicht auf dem gesamten Bildschirm. Verwenden Sie in diesem Fall den Container der obersten Ebene des Pop-ups zur Identifizierung. Zum Beispiel mit den Eigenschaften ClassName oder InnerText.
-
Verwenden Sie für die bildbasierte Identifizierung mehr als einen Screenshot, um ein Control zu identifizieren. Dies ist besonders wichtig, wenn die Controls nicht immer gleich aussehen. Ein Beispiel dafür sind Textfelder mit wechselndem Inhalt. Wenn ein Textfeld ein statisches Label hat, stellen Sie sicher, dass Sie einen Screenshot des Labels hinzufügen. Ein weiteres gutes Beispiel ist eine Umschaltfläche. Fügen Sie Screenshots beider Zustände hinzu, damit Tosca das Control sowohl im ein- als auch im ausgeschalteten Modus erkennt.
Controls stabil machen
Um Controls stabil zu machen, probieren Sie Folgendes aus:
-
Achten Sie auf dynamische Werte und versehen Sie sie mit einem *-Platzhalter. Nehmen wir an, eine Eigenschaft fügt einen Zugriffszähler am Ende ihres Werts hinzu: Example property value_20. Dies bedeutet, dass der Eigenschaftswert nur für die aktuelle Session gültig ist. Zur Laufzeit wird der Trefferzähler mindestens 21 betragen, Tosca sucht aber nach einem Control mit 20. Um dies zu vermeiden, ändern Sie den Eigenschaftswert in Example property value*.
Einer der häufigsten Störenfriede ist die Eigenschaft Caption, die häufig spezifische Informationen zur Session enthält – z. B. Zahlen oder Suchbegriffe. Sie müssen das mit einem Platzhalter beheben, sonst findet Tosca das Fenster oder die Registerkarte nicht.
-
Überprüfen Sie die Benutzerberechtigungen. Einige Benutzer haben erhöhte Berechtigungen, was bedeutet, dass sie Controls und Eigenschaften sehen, die andere Benutzer nicht sehen. Stellen Sie sicher, dass der Windows-Benutzer, unter dem Tosca Ihre Tests ausführt, die gleichen Berechtigungen hat wie der Benutzer, der die Applikation aufgezeichnet hat.
-
Berücksichtigen Sie für die index- und bildbasierte Identifizierung den Status Ihrer Implementierung. Wie viel Veränderung erwarten Sie noch?
Das Hinzufügen oder Entfernen von Instanzen eines Controls ändert den Index. Wenn dies nach der Aufzeichnung geschieht, findet Tosca zur Laufzeit nicht die richtige Instanz.
Wenn Sie das Design nach der Aufzeichnung ändern, findet Tosca keine Übereinstimmung mit dem Screenshot, den Sie als Bezeichner verwenden.
-
Berücksichtigen Sie für die bildbasierte Identifizierung die Bildschirmauflösung, die Farbtiefe bzw. das Scrollen. Stellen Sie sicher, dass der Windows-Benutzer, unter dem Tosca Ihre Tests ausführt, die gleichen Einstellungen hat wie der Benutzer, der die Applikation aufgezeichnet hat. Alternativ können Sie mehrere identifizierende Screenshots in verschiedenen Auflösungen und/oder Farbtiefen hinzufügen. Dies erhöht jedoch die Testausführungszeit. Zur Laufzeit sucht Tosca nach einer Übereinstimmung für den ersten Screenshot. Wenn Tosca keine Übereinstimmung finden kann, geht es zum nächsten Screenshot, dann zum nächsten und so weiter.
Nächste Schritte
Wenn Sie dies noch nicht getan haben, lesen Sie auch unsere anderen Best Practices-Artikel.