Wie die Objekterkennung funktioniert QTP/UFT?
⚡ Intelligente Zusammenfassung
Objektidentifizierung in QTP/UFT bestimmt, wie das Tool jedes GUI-Element während eines Testlaufs erkennt, indem es gespeicherte Testobjekteigenschaften mit Live-Laufzeitobjekteigenschaften vergleicht, damit Skripte auch dann funktionieren, wenn sich das Bildschirm-Layout ändert.

Was ist Objektidentifizierung in UFT/QTP?
Objektidentifizierung ist der Mechanismus UFT/QTP Dient dazu, ein GUI-Element auf dem Bildschirm zu erkennen, damit ein Skript zuverlässig darauf reagieren kann, und zwar wiederholt. Während einer Aufnahmesitzung, UFT Es untersucht eine kleine Anzahl von Eigenschaften des Objekts unter dem Mauszeiger und speichert diese; während der Wiedergabe vergleicht es diese gespeicherten Werte mit den Eigenschaften jedes tatsächlich vorhandenen Objekts und wählt dasjenige aus, das eindeutig übereinstimmt, unabhängig davon, wo sich dieses Objekt gerade auf dem Bildschirm befindet.
Das gespeicherte Objekt zusammen mit den Eigenschaften UFT erinnert sich daran, wird genannt TestobjektDas entsprechende Element, das während der Testausführung auf dem Bildschirm vorhanden ist, ist das LaufzeitobjektDer Vergleich der beiden bei jedem Schritt ist die Grundlage dessen, was Micro Focus als das bezeichnet. Testobjektmodellund deshalb ist ein UFT Das Skript funktioniert auch dann noch, wenn sich ein Button um ein paar Pixel verschiebt oder eine Seite neu gestaltet wird.
Objektrepository und Add-Ins
UFT speichert jedes gelernte Testobjekt zusammen mit seinen gespeicherten Eigenschaften im Inneren Objekt-Repository. Add-Ins erzählen Schnell Test Im Voraus weiß das Tool, zu welcher Technologie ein Bildschirm gehört, sodass es bereits weiß, welche Eigenschaften gelten und nicht raten muss. Dadurch verkürzt sich die Zeit, die zum Erlernen eines Objekts benötigt wird.
Klicken Sie auf werden auf dieser Seite erläutert wenn das Video nicht zugänglich ist
Jedes Objekt UFT Datensätze können Dutzende von Eigenschaften enthalten. Allein in einer Webumgebung kann ein einzelner Button seinen Namen, HTML-Tag, Typ, seine Klasse, seinen Index und weitere Informationen preisgeben. Die Speicherung all dieser Eigenschaften für jedes Objekt ist zwar technisch möglich, aber selten sinnvoll, wie die nächste Abbildung für einen typischen Eintrag im Objekt-Repository zeigt.
If UFT Würde man versuchen, jede verfügbare Eigenschaft jedes Objekts zu speichern, würde das Objekt-Repository enorm anwachsen und die Skriptausführung merklich verlangsamen. Um dies zu vermeiden, QTP Speichert nicht standardmäßig alle Eigenschaften – es speichert für jeden Objekttyp eine kleine, typische Menge, die ausgewählt wurde, um eindeutige Identifikation Dies ist ohne zusätzlichen Aufwand möglich. Diese Auswahlliste von Eigenschaften, die für jede Umgebung und Objektklasse separat festgelegt wird, wird in den Objektidentifizierungseinstellungen konfiguriert, die im Folgenden erläutert werden.
Betreff Description: Obligatorische und unterstützende Eigenschaften
Die Eigenschaften eines Objekts und sein Wert bilden zusammen das, was UFT ruft die Betreff DescriptIon — die genaue Kombination, die das Tool verwendet, um ein Element aus allen anderen Objekten auf der Seite auszuwählen. Für einen WebButton beispielsweise die Eigenschaft Name mit dem Wert Login ist oft allein ausreichend, um ein brauchbares Objekt zu bilden. DescriptIon.
Um dieses Verhalten zu überprüfen oder zu ändern, öffnen Sie Werkzeuge > Objekterkennung innerhalb UFTIm Dialogfeld „Objektidentifizierung“ werden alle aktuell geladenen Umgebungen aufgelistet; durch Auswahl einer Umgebung werden die Objektklassen automatisch ausgefüllt. UFT Es gibt entsprechende Unterstützungen, und das Bedienfeld auf der rechten Seite zeigt genau an, welche Eigenschaften für Objekte dieser Klasse gespeichert werden. Die Liste ist in zwei Gruppen unterteilt:
- Obligatorische Eigenschaften werden standardmäßig für jedes Objekt dieser Klasse gespeichert, unabhängig davon, ob sie tatsächlich benötigt werden, um es von seinen Nachbarn zu unterscheiden.
- Unterstützende Eigenschaften werden nur dann gespeichert, wenn die obligatorischen Eigenschaften allein keine eindeutige Beschreibung ergeben können — UFT arbeitet diese Liste Eigenschaft für Eigenschaft ab, bis das Objekt eindeutig ist.
Ein Webbild veranschaulicht die Regel in der Praxis besser.
- UFT Speichert immer den Alt-Text, das HTML-Tag und den Bildtyp für ein Webbild, selbst wenn der Alt-Text allein bereits eindeutig ist.
- Wenn die obligatorischen Eigenschaften keine eindeutige Beschreibung ergeben können, UFT fügt die Klasseneigenschaft aus der Hilfsliste hinzu.
- Sobald eine Eigenschaft die Beschreibung einzigartig macht, UFT stoppt das Hinzufügen weiterer Informationen – es überspringt Dateiname und Höhe, wenn die Klasse bereits ausreichte, überspringt die Höhe, wenn der Dateiname benötigt wurde, und so weiter.
- Angenommen, nur die Klasseneigenschaft wird zum Zeitpunkt der Aufzeichnung protokolliert. Zur Laufzeit UFT Es wird nicht mehr unterschieden, welche Eigenschaften obligatorisch und welche optional sind – es wird einfach jede Eigenschaft in der gespeicherten Beschreibung mit dem Laufzeitobjekt verglichen.
- Wenn auch nur eine gespeicherte Eigenschaft nicht übereinstimmt, schlägt der Schritt fehl – eine eindeutige Beschreibung ist binär, keine bestmögliche Übereinstimmung.
| Aspekt | Obligatorische Eigenschaften | Assistive Eigenschaften |
|---|---|---|
| Wenn gespeichert | Immer, für jedes Objekt dieser Klasse | Nur wenn obligatorische Eigenschaften keine eindeutige Beschreibung bilden können |
| Konfiguriert in | Dialogfeld „Objektidentifizierung“, Pflichtliste | Dialogfeld zur Objektidentifizierung, Liste der Hilfsfunktionen |
| Reihenfolge der Verwendung | Zuerst gelernt, bedingungslos | Es wurden nacheinander jeweils welche hinzugefügt, bis das Objekt eindeutig war. |
| Laufzeitbehandlung | Vergleichbar mit unterstützenden Eigenschaften | Vergleichbar mit obligatorischen Eigenschaften |
Das untenstehende Video führt Sie Schritt für Schritt durch diesen obligatorischen versus optionalen Arbeitsablauf.
Der Dialog zur Objektidentifizierung Box und Objektspion
Der Dialog zur Objekterkennung ist nicht nur ein Anzeigefenster – hier kann der Tester einstellen, wie aggressiv die UFT Identifiziert Objekte für eine gesamte Umgebung. Das Neuanordnen, Hinzufügen oder Entfernen einer Eigenschaft ändert, was ab diesem Zeitpunkt für jedes Objekt dieser Klasse gelernt wird, nicht nur für das aktuell aufgezeichnete Objekt. Der typische Arbeitsablauf sieht folgendermaßen aus:
- Öffne UFT und geh zu Werkzeuge > Objekterkennung.
- Wählen Sie eine Umgebung (Web, Windows, Java, und so weiter) aus dem Dropdown-Menü.
- Wählen Sie in der Liste auf der linken Seite eine Objektklasse aus, z. B. WebButton oder WinEdit.
- Verschieben Sie Eigenschaften zwischen den Listen „Obligatorisch“ und „Hilfsbereit“ oder ordnen Sie die Liste „Hilfsbereit“ neu an, um zu steuern, welche Eigenschaften angezeigt werden. UFT versucht es zuerst.
- Aktivieren oder deaktivieren Sie die intelligente Identifizierung für diese Klasse mithilfe des Kontrollkästchens oben im Bedienfeld.
Die hier vorgenommenen Änderungen gelten ab dem nächsten Mal. UFT lernt ein Objekt dieser Klasse – bereits im Objekt-Repository gespeicherte Einträge behalten ihre ursprüngliche Beschreibung, bis das Objekt neu erfasst oder manuell aktualisiert wird.
Eigenschaften mit dem Objekt-Spion untersuchen
Bevor die Liste der obligatorischen oder unterstützenden Elemente bearbeitet wird, überprüfen die meisten Tester, wie die Eigenschaften eines Objekts tatsächlich aussehen. ObjektspionWenn der Spy-Cursor auf ein beliebiges Steuerelement der zu testenden Anwendung gerichtet wird, werden dessen Testobjekt- und Laufzeiteigenschaften sowie die Methoden nebeneinander aufgelistet. UFT kann man nutzen – nützlich, wenn sich eine obligatorische Eigenschaft zwischen den Builds ständig ändert und durch eine beständigere ersetzt werden muss.
Ordinale Kennungen: Index, Ort und Erstellungszeit
Manchmal sehen selbst bei Berücksichtigung aller obligatorischen und optionalen Eigenschaften zwei oder mehr Objekte identisch aus – beispielsweise drei Kontrollkästchen mit demselben Namen, derselben Klasse und derselben Bezeichnung. Genau für solche Situationen UFT greift auf ein zurück Ordinalbezeichner, ein Backup-Wert, der ansonsten identische Objekte nach ihrer Position anstatt nach ihren Eigenschaften einordnet.
| Ordnungszahl | Eigenschaft | Auftrag erteilt | Gilt für |
|---|---|---|---|
| Index | Index | Die Reihenfolge, in der das Objekt im zugrunde liegenden Quellcode erscheint, beginnt bei 0. | Jede Objektklasse |
| Standort | Standort | Von oben nach unten, dann von links nach rechts auf dem Bildschirm, beginnend bei 0 | Jede Objektklasse |
| Erstellungszeitpunkt | Erstellungszeitpunkt | Reihenfolge, in der das Browserfenster geöffnet wurde, beginnend bei 0 | Nur Browserobjekte |
UFT Die Methode lernt nur dann einen ordinalen Bezeichner, wenn die obligatorischen und optionalen Eigenschaften zwei Objekte tatsächlich nicht trennen können, da der Wert relativ ist und sich bei einer Änderung des Seitenlayouts ändern kann, selbst wenn sich das Objekt selbst nicht geändert hat. Der folgende VBScript-Ausschnitt verwendet die Index-Methode, um auf den zweiten von zwei gleichnamigen Links zu klicken.
Dim objBrowser, objPage Set objBrowser = Browser("title:=Guru99 Bank") Set objPage = objBrowser.Page("title:=Guru99 Bank") ' Index:=1 clicks the second Link named "Manage Order" (index starts at 0) objPage.Link("name:=Manage Order", "index:=1").Click
Index- und Standortwerte sind spezifisch für die in der Anweisung angegebene Objektklasse, daher Index:=3 Bei einem WebEdit-Objekt wird nur unter den WebEdit-Objekten gesucht, während der gleiche Wert bei einem generischen WebElement alle Webobjekte auf der Seite unabhängig vom Typ zählt.
Wo intelligente Identifizierung ihren Platz findet
Objektidentifizierung in UFT Die Berechnung hört nicht mit der gefundenen Beschreibung auf. Wenn keine eindeutige Übereinstimmung gefunden werden kann, UFT arbeitet den Prozess in einer festgelegten Reihenfolge durch: Zuerst werden die gelernten obligatorischen und unterstützenden Eigenschaften geprüft, dann alle visuellen Beziehungsbezeichner, dann Intelligente Identifikation nur wenn dieser Mechanismus für die Klasse aktiviert ist, und nur als letzte Möglichkeit eine Ordnungszahl.
Die intelligente Identifizierung arbeitet bewusst zwischen der gelernten Beschreibung und dem ordinalen Bezeichner. Sie erstellt eine Kandidatenliste anhand der Kerneigenschaften einer Klasse und verfeinert diese mit optionalen Eigenschaften. So kann sie oft ein Objekt wiederherstellen, dessen gelernte Beschreibung fehlerhaft ist – beispielsweise einen umbenannten Button –, ohne jemals auf das Objekt-Repository zuzugreifen. Da dieser zusätzliche Suchschritt Zeit kostet, aktivieren die meisten Teams ihn für Klassen, deren Identifizierung anfällig ist, und verwenden ordinale Bezeichner nur dann, wenn die Position tatsächlich das einzige verbleibende Unterscheidungsmerkmal ist, wie beispielsweise bei einer Gruppe unbeschrifteter Optionsfelder.


