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

Video 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:

Abbildung 5.8:  Ein regulärer Ausdruck im 'Merkmal' Attribut

Reguläre Ausdrücke finden bei QF-Test an vielen Stellen Verwendung. Im Abschnitt 47.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 oder Document 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
    TEXTText des HTML-Elements, bei Bedarf gekürzt
    AText des HTML-Elements (bei Bedarf gekürzt), sonst Fenstertitel, sonst URL
    FIELDSETText eines darin enthaltenen HTML-Elements mit dem Tag "LEGEND"
    FORMWert des Attributs "name"
    IMGWert des Attributs "alt", sonst "src", sonst Teil der URL
    INPUTWert des Attributs "name" Bei RadioButtons mit identischen Namen -> Wert des Attributs "name" mit angehängtem Wert des Attributs "value"
    BUTTONWert des Attributs "name", sonst Text des HTML-Elements, bei Bedarf gekürzt
    LABELText des HTML-Elements, bei Bedarf gekürzt
    SELECTWert des Attributs "name"
    OPTIONWenn die Option OPT_WEB_USE_OPTION_LABEL gesetzt ist, Wert des Attributs "label", ansonsten der Text des HTML-Elements, bei Bedarf gekürzt
    OPTGROUPWert des Attributs "label"
    IFRAMEWert des Attributs "id", sonst "name", sonst "src"
    Tabelle 5.1:  'Merkmal' Attribut für Web-Komponenten

Bei sehr speziellen Konstellation kann das 'Merkmal' Attribut auch einen Wert erhalten, der von obiger Logik abweicht.