Tutorial Icon
QF-Test Tutorial Videoversion

Tutorial als Videoversion, in dem wir Sie Schritt für Schritt durch QF-Test führen...

SmartIDs - direkte Komponentenadressierung

Seit QF-Test 7.0 bieten SmartIDs offiziell die Möglichkeit, Komponenten ohne Aufnahme eines 'Komponente' Knoten zu referenzieren.

Für gewisse Anwendungen kann dies die Verwaltung und Pflege der Komponenteninformationen stark vereinfachen.

Auch auf die Editier- und Lesbarkeit der Tests können SmartIDs positiven Einfluss haben.

Nicht zuletzt bietet dies die Möglichkeit, Tests auch ohne Aufnahmefunktion zu erstellen, zum Beispiel, wenn eine Komponente oder die gesamte Anwendung noch gar nicht vorhanden ist, man den Test aber bereits implementieren möchte ("Test first" Ansatz).

Als Wiedererkennungskriterien stehen die Komponentenklasse, deren Name oder Beschriftung und der Index zur Verfügung. Die Werte sind die gleichen wie beim aufgenommenen 'Komponente' Knoten. Zudem können auch Komponentenhierarchien abgebildet werden.

Eine SmartID wird an Stelle der QF-Test ID der Komponente verwendet. Ihr Kennzeichen ist die Raute # als erstes Zeichen. Anschließend kann der Name oder die Beschriftung der Komponente geschrieben werden, zum Beispiel:

  • #btnOK, mit "btnOK" als Namen der Komponente oder
  • #Vorname, mit "Vorname" als Beschriftung der Komponente.

Der Nachteil dieser einfachen Form der SmartID kann die Performanz bei der Wiedergabe sein, da QF-Test alle Komponenten nach diesen Kriterien durchsuchen muss. Aus diesem Grund ist es sinnvoll, die Klasse der Komponente mit anzugeben. Obige SmartIDs könnten dann so aussehen:

  • #Button:btnOK
  • #TextField:Vorname

Aktuell ist die Aufnahme von SmartIDs nicht als Standard aktiviert, kann aber direkt über das Menü eingeschaltet werden.

Nehmen Sie nun SmartIDs auf, indem Sie

  • Aktion im Menü Aufnahme die Einstellung Aufnahme von SmartIDs anhaken.
  • Aktivieren Sie den Aufnahmemodus über "Aufnahme starten" Record.
  • Klicken Sie auf ein Textfeld, z.B. das Eingabefeld für den Rabatt,
  • Klicken Sie auf eine Tabellenzelle, z.B. das erste Modell.
  • Beenden Sie die Aufnahme über "Aufnahme beenden" Stop.

Die aufgenommenen Mausklicks finden Sie im Bereich 'Extrasequenzen'.

Die SmartID für das Eingabefeld lautet #TextField:name=DiscountValue, da der Name bevorzugt für die SmartID verwendet wird, wenn Name und Beschriftung vorhanden sind.

Der zweite Mausklick zeigt die Aufnahme der Tabelle als SmartID und daran anschließend einen Textindex für die Spalte, eingeleitet mit @ und einen numerischen Index für die Zeile, eingeleitet mit &, wie Sie dies im vorletzten Abschnitt kennengelernt haben: #Table:name=VehicleTable@Modell&0.

  • Aktion Wenn Sie nicht weiter aktiv mit SmartIDs arbeiten möchten, können Sie diese in der Aufnahme-Option wieder deaktivieren.

Sie können aber auch gerne weiter mit SmartIDs arbeiten. Dabei werden Sie bei Aufnahmen auch weitere Ausdrücke in SmartIDs finden. Einige wollen wir hier zeigen und die Hintergründe dazu erläutern.

Zum Beispiel werden Sie bei einer Beschriftung, die mit einem Doppelpunkt endet, vor diesem Doppelpunkt einen Rückstrich sehen:

  • #TextField:Vorname\:

Der Hintergrund ist, dass ein Doppelpunkt den davor stehenden Text als Komponentenklasse kennzeichnet. Daher müssen Doppelpunkte im Namen oder der Beschriftung mit einem Rückstrich geschützt werden. Dies gilt auch für die Sonderzeichen, die Indizes einleiten, also @, & und %.

Vor Beschriftungen werden Sie einen Kennzeichner, hier left= sehen:

  • #TextField:left=Vorname

Hintergrund: Eine SmartID mit Angabe von Klasse und Namen der Komponente erreicht eine gleich gute Performanz bei der Wiedergabe wie die Verwendung von 'Komponente' Knoten. Bei Beschriftungen sieht dies jedoch anders aus. Hier gibt es unterschiedlichste Möglichkeiten, was die beste Beschriftung für eine Komponente darstellt. QF-Test sucht unter den für eine Komponente in Frage kommenden Beschriftungen auf Basis der Komponentenklasse, Lage und Abstand der Beschriftungen die Beste aus. Für die Performanz bei der Wiedergabe ist es daher hilfreich, wenn direkt angegeben wird, nach welcher Beschriftung gesucht werden soll.

left= gibt hierbei an, dass die Beschriftung links der Komponente zu finden ist. Weitere Lagebezeichnungen in einer SmartID sind right=, top=, topleft= und bottom=. Wenn die Beschriftung der Text der Komponente ist, lautet der Kennzeichner text=, für den Tooltip tooltip=.

Wenn Komponenten mit dem gleichen Namen oder der gleichen Beschriftung mehrmals auf einer Anzeige vorhanden sind, können Sie auf SmartIDs stoßen, bei denen zwei über das Verbindungszeichen @ zu einer vereinigt werden:

  • #TitledPanel:Kundenadresse@#TextField:left=Vorname
  • #TitledPanel:title=Rechnungsadresse@#TextField:left=Vorname

Im Beispiel gibt es die Beschriftung "Vorname" sowohl in der Kachel "Kundenadresse" als auch in der Kachel "Rechnungsadresse". Über die geschachtelte SmartID kann die Eindeutigkeit hergestellt werden.

Das zweite Beispiel ist etwas performanter wegen title= bei der SmartID bei der Kachel. Dafür ist die Lesbarkeit beim ersten etwas besser. Es hängt von der Anwendung ab, wie sehr auf Performanz geachtet werden muss. Bei Web-Anwendungen mit sehr vielen geladenen GUI-Elementen ist dies typischerweise relevant. Bei Java-Anwendungen kann man häufig der Lesbarkeit den Vorrang geben.

Bei langen Beschriftungen kann ein regulärer Ausdruck zur Verkürzung verwendet werden:

  • #%Dialog:Information.*@#Button:OK

Das Prozentzeichen direkt nach der Raute gibt an, dass entweder der Name oder die Beschriftung als regulärer Ausdruck zu interpretieren ist. Im Beispiel wird der Titel verkürzt. Außerdem gilt die SmartID für jeden OK-Button, der in einem Dialog liegt, dessen Titel mit "Information" beginnt. Eine genauere Beschreibung regulärer Ausdrücke finden Sie im Handbuch - reguläre Ausdrücke. Weitere Informationen zu Komponenten und SmartIDs finden Sie im Handbuch - Komponenten.