Merkmal
Im Merkmal Attribut wird, grob gesagt, ein Text abgelegt, der für die Wiedererkennung nützlich ist und direkt mit der Komponente selbst in Verbindung steht. Dies kann entweder der Text der Komponente sein (z.B. Beschriftung auf einem Button), eine programmtechnisch zugeordnete Beschriftung/Label der Komponente (z.B. CheckBox, RadioButton, TextField) oder ein Titel (Fenster, Dialog, TitledPanel). Bei einer Webseite die URL. Die konkreten Werte, die in Frage kommen, sind klassen- und technologiespezifisch. Für alle Engines außer Web siehe Generische Klassen. Für Web gelten die in Merkmal bei Web-Komponenten beschriebenen Zuordnungen.
Häufig ist der Wert des Merkmal mit dem in Weiteres Merkmal
qfs:labelBest
identisch. Dies liegt daran, dass
die Beste Beschriftung für die Komponente in einer der
qfs:label*
-Variantenabgespeichert wird und
dies meist der Text ist, der direkt mit der Komponente in Verbindung steht.
Die Redundanz macht dennoch Sinn, da für das weitere Merkmal der Status gesetzt werden kann:
'Ignorieren', 'Sollte übereinstimmen' oder 'Muss übereinstimmen'.
Für das Merkmal gilt implizit immer der Status 'Sollte übereinstimmen'.
Es kann aber aus Gründen der Rückwärtskompatibilität nicht von
den qfs:label*
-Varianten abgelöst werden.
Der Einfluss des Merkmal bei der Generierung der QF-Test ID ist in Generierung der QF-Test ID der Komponente beschrieben. Beispiele hierzu finden Sie in Woran erkennt man eine robuste Komponentenerkennung?.
Komponenten können in einer SmartID auch direkt über das Merkmal adressiert werden, ohne Aufnahme eines Komponente-Knoten.
Verwendung von regulären Ausdrücken oder Arbeiten mit
dynamischen Fenstertiteln
Im Video 'Komponentenerkennung'
wird die Verwendung von regulären Ausdrücken in Fenstertiteln ab Minute 13:07 erläutert.
In vielen Applikationen werden Sie auf die Situation treffen, dass keine eindeutigen Namen seitens der Entwicklung vergeben wurden und QF-Test dieselben Komponenten immer wieder an unterschiedlichen Stellen aufzeichnet. Die Wiedergabe dieser aufgezeichneten Komponenten funktioniert dann meistens solange sich die Geometrie des Fensters nicht drastisch verändert.
In diesem Fall ist es wahrscheinlich, dass der Titel des Hauptfensters sich immer wieder ändert, z.B. kann der Titel die aktuelle Versionsnummer, den gerade eingeloggten Benutzer oder einen Dateinamen beinhalten. Wenn Sie Ihre Tests stabil halten wollen und die unterschiedlich aufgezeichneten Fenster als einen Fenster Knoten unter dem Fenster und Komponenten Knoten behandeln wollen, dann selektieren Sie den Fenster Knoten und editieren Sie dessen Merkmal Attribut. Dort ersetzen Sie den dynamischen Teil durch einen regulären Ausdruck und haken dabei die Checkbox 'Als Regexp' an. Nun sollten Ihre Tests wieder funktionieren.
Hier sehen Sie ein Beispiel für einen regulären Ausdruck für eine Komponente des CarConfigurators, deren Merkmal mit dem Wort 'Fahrzeuge' beginnt, aber danach einen beliebigen dynamischen Teil enthalten kann:

Reguläre Ausdrücke finden bei QF-Test an vielen Stellen Verwendung. Im Abschnitt 49.3 finden Sie detaillierte Informationen zu ihrer Verwendung.
Merkmal bei Web-Komponenten
Das Merkmal für Web-Komponenten wird gemäß der folgenden Logik ermittelt:
-
Bei HTML-Elementen, die ein
Frame
oderDocument
sind, wird die URL in das Merkmal Attribut eingetragen. -
Falls keine der speziellen nachfolgenden Zuordnung zutrifft, wird das
id
-Attribut des HTML-Elements verwendet, soweit vorhanden und eindeutig genug. Falls nicht, wird der Text des HTML-Elements, bei Bedarf gekürzt, im Merkmal Attribut eingetragen. - Spezielle Zuordnungen:
Tag-Name des HTML-Elements | Wert des Merkmal Attributs |
---|---|
TEXT | Text des HTML-Elements, bei Bedarf gekürzt |
A | Text des HTML-Elements (bei Bedarf gekürzt), sonst Fenstertitel, sonst URL |
FIELDSET | Text eines darin enthaltenen HTML-Elements mit dem Tag "LEGEND" |
FORM | Wert des Attributs "name" |
IMG | Wert des Attributs "alt", sonst "src", sonst Teil der URL |
INPUT | Wert des Attributs "name" Bei RadioButtons mit identischen Namen -> Wert des Attributs "name" mit angehängtem Wert des Attributs "value" |
BUTTON | Wert des Attributs "name", sonst Text des HTML-Elements, bei Bedarf gekürzt |
LABEL | Text des HTML-Elements, bei Bedarf gekürzt |
SELECT | Wert des Attributs "name" |
OPTION | Wenn die Option OPT_WEB_USE_OPTION_LABEL gesetzt ist,
Wert des Attributs "label", ansonsten der Text des HTML-Elements, bei Bedarf gekürzt |
OPTGROUP | Wert des Attributs "label" |
IFRAME | Wert des Attributs "id", sonst "name", sonst "src" |
Bei sehr speziellen Konstellation kann das Merkmal Attribut auch einen Wert erhalten, der von obiger Logik abweicht.