55.5 Kriterien zur Identifizierung von Knoten

YAML-Rubrik node

Definitionsrelevante Knoten müssen ausreichend genau geschrieben werden, damit bei einer späteren Knotenumwandlung festgestellt werden kann, ob ein Knoten einer bestimmten Definition zugeordnet werden kann.

Hier erfahren Sie, welche Knoteninformationen dafür genutzt werden können, in welche Rubriken im YAML-Code sie eingetragen werden und die Vorgehensweise, wie die Automatische Erzeugung von Prozeduraufruf-Definitionen diese befüllt.

55.5.1 Knotentyp

YAML-Rubrik node type

Hier geben Sie an, welche Art von Ereignis erwartet wird, zum Beispiel MouseEvent, TextInput, KeyEvent oder CheckStep.

55.5.2 Knotenattribute

YAML-Rubrik attributes

Hier können Sie spezifizieren, welche Attributwerte bei den umzuwandelnden Knoten überprüft werden sollen. Dies kann zum Beispiel bei Check-Knoten der Name des Check-Typs oder Erwarteter Status sein, bei Mausevents die Modifiers. Eine besondere Rolle spielt das Attribut QF-Test ID der Komponente:

YAML-Eintrag component id

Die QF-Test ID der Komponente identifiziert die Komponente vollständig. Wenn sie angegeben wird, brauchen keine Angaben in der Rubrik component gemacht zu werden.

Bei der Knotenumwandlung wird dann nur die QF-Test ID der Komponente des jeweiligen Knotens verglichen. Sie muss exakt übereinstimmen, inklusive Indexangaben. Falls diese ignoriert werden oder als Parameter in den Prozeduraufruf eingetragen werden sollen, muss die QF-Test ID der Komponente ohne die Indexangaben in der Rubrik component unter id eintragen werden.

Der exakte Vergleich bedingt, dass bei der Verwendung von SmartIDs die umzuwandelnden Knoten ebenfalls SmartIDs haben müssen - und umgekehrt, wenn keine SmartIDs verwendet werden.

Es gibt eine weitere Situation, bei der die Verwendung von component id in der Rubrik attributes unter Umständen nicht funktioniert: Und zwar, wenn bei der Aufnahme von Komponenten die Option Gewichtung von Namen (Aufnahme) manchmal auf Hierarchie von Namen und manchmal auf Name übertrifft alles gestellt war. Sinnvoll wäre es, die Komponente zu bereinigen. Um den Aufwand zu sparen, wird aber häufig der Einfachheit halber die Option auf Name übertrifft alles gesetzt. Dies funktioniert für die Ausführung der Tests, für die Erstellung von Definitionen stellt es aber eine Herausforderung dar.

Aus diesen Gründen werden bei der automatischen Erstellung von Definitionen die Komponenteninformationen in der Rubrik component eingetragen.

55.5.3 Komponentenwerte

YAML-Rubrik component

Alternativ zur Angabe der QF-Test ID der Komponente unter component id in der Rubrik attributes können die Kriterien, die die Komponente beschreiben, in der Rubrik component hinterlegt werden. Auch hier spielt die QF-Test ID eine herausragende Rolle:

Eine QF-Test ID steht zur Verfügung

Die Angabe der id erspart die Spezifizierung der übrigen Kriterien - mit Ausnahme von Subindizes, die hier nie Bestandteil der id sind, sondern immer in der Rubrik subindexX angeben werden. Die zweite Ausnahme ist scope, der dann relevant sein kann, wenn die Option Gewichtung von Namen (Aufnahme) auf Name übertrifft alles gesetzt ist.

Bei der Angabe einer SmartID geben Sie implizit die Erkennungskriterien (Klasse, Name, Feature, Extra Features) an. Wenn Sie eine verschachtelte SmartID verwenden, werden bei den umzuwandelnden Knoten dann auch die übergeordneten Komponenten geprüft, ob sie den Angaben entsprechenden.

Wenn die QF-Test ID ganz klassisch auf einen Komponente-Knoten verweist und die Option Gewichtung von Namen (Aufnahme) auf Hierarchie von Namen gesetzt ist, wird bei den umzuwandelnden Knoten geprüft, ob sie auf genau die gleiche Komponente verweisen. Wenn die Option Gewichtung von Namen (Aufnahme) auf Name übertrifft alles gesetzt ist oder im umzuwandelnden Knoten eine SmartID angegeben ist, werden bei der Prüfung der umzuwandelnden Knoten zuerst Klasse und Name des referenzierten erwarteten Komponente-Knotens ausgelesen und diese dann mit Klasse und Name der vom umzuwandelnden Knoten referenzierten Komponente oder SmartID verglichen.

Die QF-Test ID steht nicht zur Verfügung

Wenn die QF-Test ID nicht für die Identifizierung des Knotens genutzt werden kann, können Sie Klasse, Name Merkmal sowie beliebige Weitere Merkmale angeben. scope und Subindizes können ebenfalls spezifiziert werden.

Bei der Umwandlung werden sie dann in der folgenden Reihenfolge ausgewertet: zunächst die classes, dann - sofern angegeben - der name. Ist kein name angegeben, werden feature und extra features verglichen. Falls bei der Klassenprüfung der Wert im Klasse-Attribut nicht übereinstimmt werden auch die Extra Features qfs:type, qfs:class, qfs:genericclass und qfs:systemclass berücksichtigt. scope und Subindizes werden immer ausgewertet.

55.5.4 Statusangaben

YAML-Rubrik condition

Bei Definitionen, die für die Anwendung direkt im Anschluss an eine Aufnahme ausgewertet werden sollen, können Sie auch bestimmte Zustände der GUI-Komponente abfragen, die in den Aufnahmeinformationen vorhanden sind, aber nicht im Knoten abgespeichert werden. Dies betrifft die Zustände checked, editable, enabled, selected und visible. Die Werte können über Platzhalter. in Ausdrücken des jeweiligen Skriptsprache genutzt werden.