Handbuch
Version 8.0.2 |
Die Klasse einer Komponente steht für den Typ der jeweiligen Komponente und ist daher sehr wichtig. Vereinfacht gesagt: Wenn QF-Test einen Button aufnimmt, sucht es bei der Wiedergabe auch nur nach einem Button und nicht nach einer Tabelle oder einem Baum. Dies verbessert Performanz und Stabilität der Wiedererkennung und hilft Ihnen außerdem, die von QF-Test aufgezeichnete Information zu einer Komponente mit der tatsächlichen Komponente im GUI zu korrelieren.
Neben ihrer Rolle bei der Identifikation von Komponenten ist die Klasse auch wichtig für die Registrierung verschiedener Arten von Resolvern, die großen Einfluss darauf nehmen können, wie QF-Test Komponenten behandelt. Resolver werden in Abschnitt 53.1.7 detailliert erläutert.
Der 'Name' wird für die Generierung der 'QF-Test ID der Komponente' verwendet. Beispiele hierzu finden Sie in Woran erkennt man eine robuste Komponentenerkennung?.
Komponenten können in einer SmartID auch direkt über den 'Namen' adressiert werden, ohne Aufnahme eines 'Komponente'-Knotens.
Der Einfluss der Klasse auf die 'QF-Test ID' der Komponente ist in Generierung der 'QF-Test ID' der Komponente beschrieben. Die Verwendung als SmartID in Abschnitt 5.6.
Normalerweise gibt es in jeder UI-Technologie systemspezifische Klassen, die
einen Button, eine Tabelle oder anderen Typ kennzeichnen. Für einen
Button kann diese Repräsentation z.B. ein javax.swing.JButton
in Java Swing, ein
org.eclipse.swt.widgets.Button
in Java SWT, ein
javafx.scene.control.ButtonBase
in JavaFX oder ein INPUT:SUBMIT
in Web-Anwendungen sein.
Um ein technologieübergreifendes Testen zu ermöglichen,
vereinheitlicht QF-Test nun diese spezifischen Klassen und arbeitet mit
sogenannten generischen Klassen,
z.B. Button
für alle zuvor genannten Button-Beispiele.
Sie finden eine Beschreibung der generischen Klassen in Kapitel 60. Zusätzlich zu der generischen Klasse werden systemspezifische Klassen als 'Weitere Merkmale' aufgenommen, allerdings mit dem Status "Ignorieren". Im Fall von Erkennungsproblemen aufgrund zu vieler ähnlicher Komponenten können diese aktiviert werden, um die Erkennung zu schärfen, wenn auch auf Kosten der Flexibilität.
Swing
JavaFX
Sogar dann, wenn von der Klasse abgeleitet wurde, wird die generische Klasse aufgenommen. Zusätzlich sei erwähnt, dass dieses Konzept QF-Test erlaubt, problemlos Tests mit obfuskierten Klassen zu erstellen, ohne dass Sie die Standardeinstellungen ändern müssen.
Während der Wiedergabe vergleicht QF-Test das aufgezeichnete 'Klasse'
Attribut der Komponente mit jeder Klasse des Objektes im SUT. Deshalb
kann QF-Test auch mit Änderungen von Klassennamen umgehen, solange der
Basistyp der selbe bleibt.
Web
HTML ist eine sehr flexible Sprache, um den Inhalt und Aufbau einer Webseite
zu beschreiben. Es gibt nur ein Minimum an Quasi-Standards wie zum Beispiel
"INPUT:SUBMIT", bei denen immer die selbe Funktionalität zu erwarten ist und
die somit einer QF-Test Klasse standardmäßig zugewiesen werden können.
Die Entwicklung von Web-Applikationen erfolgt im Normalfall mit Toolkits,
die ihre eigenen Standards haben. In QF-Test wurden für eine Reihe gängiger
Toolkits die Klassenzuordnungen vorgenommen, siehe Besondere Unterstützung für verschiedene Web-Komponentenbibliotheken.
Wenn die Anwendung mit einem erweiterten Toolkit erstellt wurde oder
ganz mit einem eigenen gearbeitet wurde,
wird es notwendig sein, QF-Test die Klassenzuordnungen bekanntzugeben.
Dies ist in Verbesserte Komponentenerkennung mittels CustomWebResolver
beschrieben.
Wenn QF-Test einer Komponente eine generische Klasse zuordnen kann, bietet das für die Testerstellung und Ausführung folgende Vorteile:
Wenn die Funktionalität der Komponente bekannt ist, können die für die Erkennung am besten geeigneten Kriterien abgespeichert werden.
Beispiel Button: Hier ist die Beschriftung des Buttons erste Wahl für das 'Merkmal' und das weitere Merkmal 'qfs:labelText'.
Beispiel Textfeld: Bei einem Textfeld hingegen macht es keinen Sinn, den
eigenen Text für die Wiedererkennung zu verwenden. Hier sucht QF-Test nach
einer Beschriftung in der Nähe und speichert diese im weiteren Merkmal
in einer der qfs:label*
-Varianten, zum Beispiel
in 'qfs:labelLeft', wenn sich die Beschriftung links des Textfelds befindet.
Auch die generische Klasse an sich ist ein Unterscheidungskriterium.
Dies wird besonders bei Web-Anwendungen deutlich, bei denen es vorkommen
kann, dass die meisten Komponenten mit der Klasse DIV
,
entsprechend ihres HTML-Tags, aufgenommen werden.
Die generische Klasse hat auch Einfluss auf die optimale Mausposition beim Abspielen der Events.
Beispiel Button: Ein Mausklick wird am besten mittig auf den Button abgespielt.
Beispiel Textfeld: Der Mausklick sollte die gleiche Stelle abgespielt werden, auf die der Tester bei der Aufnahme geklickt hat, damit bei Bedarf anschließend Text genau dort eingefügt werden kann.
Letzte Änderung: 4.12.2024 Copyright © 1999-2024 Quality First Software GmbH |