Events

In diesem Abschnitt sind alle Arten von Knoten zusammengefasst, die Aktionen im SUT auslösen. Neben den reinen Java-Events gibt es auch Pseudoevents mit besonderer Bedeutung.

'Mausevent'

'Mausevents' simulieren Mausbewegungen und -klicks, sowie Drag&Drop Operationen.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Keine

Ausführung: Die Koordinaten und weiteren Attribute des Events werden zusammen mit den Daten der Zielkomponente an das SUT geschickt. Die TestEventQueue ermittelt daraus im SUT die passende Komponente und rechnet die Koordinaten entsprechend um. Der so gebildete Event wird dann im SUT ausgelöst.

Attribute:

Mausevent Attribute
Abbildung 41.55:  'Mausevent' Attribute
'Client'

Der Name unter dem der Java-Prozess des SUT gestartet wurde, an den der Event geschickt werden soll.

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

'QF-Test ID der Komponente'

Die QF-Test ID des 'Fenster', 'Komponente' oder 'Element' Knotens, auf den sich der Event bezieht.

Der "Komponente auswählen" Button [Komponente auswählen] öffnet einen Dialog, in dem Sie die Komponente (siehe Kapitel 5) direkt auswählen können. Diesen erreichen Sie auch mittels [Shift-Return] oder [Alt-Return], sofern sich der Fokus im Textfeld befindet. Alternativ können Sie den gewünschten Knoten mittels [Strg-C] bzw. »Bearbeiten«-»Kopieren« kopieren und seine QF-Test ID durch drücken von [Strg-V] in das Textfeld einfügen.

Dieses Attribut unterstützt ein spezielles Format, das es erlaubt, Komponenten in anderen Testsuiten zu referenzieren (siehe Abschnitt 25.1). Des weiteren können Unterelemente von Knoten direkt angegeben werden, ohne dass ein eigener Knoten dafür vorhanden sein muss (siehe Abschnitt 5.9). Bei der Verwendung von SmartIDs können Sie ein GUI-Element direkt über seine Wiedererkennungsmerkmale adressieren. Weitere Informationen hierzu finden Sie in SmartID und 'Komponente'-Knoten versus SmartID.

Variabel: Ja

Einschränkungen: Darf nicht leer sein

'Event'

In dieser ComboBox können Sie die Art des Events festlegen. MOUSE_MOVED, MOUSE_PRESSED, MOUSE_RELEASED, MOUSE_CLICKED und MOUSE_DRAGGED entsprechen den Event IDs der Java-Klasse MouseEvent.

Der abstrakte 'Mausklick'-Event fasst die Events MOUSE_MOVED, MOUSE_PRESSED, MOUSE_RELEASED und MOUSE_CLICKED zusammen, d.h. bei der Wiedergabe wird der Pseudoevent durch vier Einzelevents simuliert. Hierdurch verbessert sich die Übersicht und die Bearbeitung der Suite wird vereinfacht.

4.1.3+ Der spezielle 'Doppelklick'-Event ist noch umfassender und beinhaltet alle Einzelevents, um einen kompletten Doppelklick zu simulieren.

MOUSE_DRAG_FROM, MOUSE_DRAG_OVER und MOUSE_DROP_TO dienen zur Simulation von Drag&Drop im SUT. Näheres zu diesem Thema finden Sie in Abschnitt 48.1.

Variabel: Nein

Einschränkungen: Keine

X/Y

Dies sind die Koordinaten des MouseEvents. Sie sind relativ zur linken oberen Ecke des 'Fensters', der 'Komponente' oder des 'Elements', auf das sich der Event bezieht. Sie können negativ sein, z.B. um einen Ast in einem JTree mittels eines Klicks auf seinen Schalter ein- oder auszuklappen.

Meist sind die genauen Koordinaten für einen MouseEvent egal, so lange sie innerhalb des Ziels liegen. In solchen Fällen sollten Sie die Werte für 'X' und 'Y' leer lassen woraufhin QF-Test die Mitte des Ziels ansteuert. Wenn möglich belässt QF-Test die Werte auch bei der Aufnahme leer, sofern die Option Mausevents ohne Koordinaten aufnehmen wo möglich gesetzt ist.

Variabel: Ja

Einschränkungen: Gültige Zahl oder leer

'Modifiers'

Bei Tastatur- und Mausevents wird mit diesem Attribut der Zustand der Tasten Shift, Strg und Alt sowie der Maustasten festgelegt. Jeder Taste ist dabei ein Wert zugeordnet, Kombinationen erhält man durch Addition.

Die Werte im Einzelnen:

WertTaste
1Shift
2Strg
4Meta bzw. rechte Maustaste (Langer Klick bei Android und iOS)
8Alt bzw. mittlere Maustaste
16Linke Maustaste
Tabelle 41.16:  Modifier Werte

Variabel: Ja

Einschränkungen: Gültige Zahl

'Anzahl Klicks'

Durch dieses Attribut unterscheidet Java, ob es sich bei einem Mausklick um einen einfachen, oder einen Doppelklick handelt.

Variabel: Ja

Einschränkungen: Gültige Zahl

'Popup-Menü auslösen'

Ist dieses Attribut gesetzt, kann der Event das Öffnen eines PopupMenus auslösen. Dieser etwas eigenwillige Mechanismus dient in Java dazu, die unterschiedlichen Konventionen zum Aufruf eines PopupMenus auf verschiedenen native Systems zu unterstützen.

Variabel: Ja

Einschränkungen: Keine

'Als "harten" Event wiedergeben'

Wenn dieses Attribut gesetzt ist, wird der Event als "harter" Event abgespielt. Dies bedeutet, dass er als echter Systemevent wiedergegeben wird, inklusive Mausbewegung und nicht nur als "weicher" Event in die TestEventQueue eingespeist wird. "Weiche" Events sind typischerweise besser, weil sie eine Beeinflussung durch gleichzeitige Mausaktionen des Benutzers vermeiden. Auch sind sie zuverlässiger gegenüber Beeinträchtigungen durch überlappende Fenster. Trotzdem gibt es spezielle Situationen, in denen "harte" Events hilfreich sind.

Variabel: Ja

Einschränkungen: Keine

'QF-Test ID'

Die QF-Test ID ist für diesen Knoten zur Zeit ohne Bedeutung.

Variabel: Nein

Einschränkungen: Darf keines der Zeichen '\', '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.

'Verzögerung vorher/nachher'

Mit diesen Parametern kann vor oder nach der Ausführung eine Verzögerung bewirkt werden. Sind sie nicht gesetzt, wird die Standardverzögerung aus den Optionen verwendet.

Variabel: Ja

Einschränkungen: Leer oder >0

'Bemerkung'

Hier können Sie einen beliebigen Kommentar eintragen.

Hinweis Für die ausführliche Dokumentation, insbesondere von 'Testfallsatz', 'Testfall' oder 'Prozedur' Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von [Alt-Eingabe] oder Klicken des Externer Editor Buttons der Kommentar komfortabel bearbeitet werden kann.

Für einige Knoten können Sie ein spezielles Verhalten per Doctags konfigurieren, siehe Doctags.

Falls bei 'Komponenten' Knoten in dem Bemerkungsfeld eine Eintragung gemacht wurde, wird der Knoten bei der Suche bzw. dem Löschen von ungenutzten Komponenten übersprungen.

Variabel: Ja

Einschränkungen: Keine

'Tastaturevent'

Tastaturevents spielen dem SUT Eingaben über die Tastatur vor. Mehrere Tastatureingaben in Folge können automatisch zu einer 'Texteingabe' zusammengefasst werden.

Ein InputMethodEvent ist eine spezielle Form von Tastaturevent, der die Eingabe von Zeichen aus internationalen Zeichensätzen erlaubt. QF-Test unterstützt InputMethodEvents nicht direkt, sondern konvertiert Events vom Typ INPUT_METHOD_TEXT_CHANGED automatisch in 'Tastaturevents' vom Typ KEY_TYPED.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Keine

Ausführung: Die Tastaturcodes des Events werden zusammen mit den Daten der Zielkomponente an das SUT geschickt. Die TestEventQueue ermittelt daraus im SUT die passende Komponente. Der so gebildete Event wird dann im SUT ausgelöst.

Attribute:

Tastaturevent Attribute
Abbildung 41.56:  'Tastaturevent' Attribute
'Client'

Der Name unter dem der Java-Prozess des SUT gestartet wurde, an den der Event geschickt werden soll.

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

'QF-Test ID der Komponente'

Die QF-Test ID des 'Fenster', 'Komponente' oder 'Element' Knotens, auf den sich der Event bezieht.

Der "Komponente auswählen" Button [Komponente auswählen] öffnet einen Dialog, in dem Sie die Komponente (siehe Kapitel 5) direkt auswählen können. Diesen erreichen Sie auch mittels [Shift-Return] oder [Alt-Return], sofern sich der Fokus im Textfeld befindet. Alternativ können Sie den gewünschten Knoten mittels [Strg-C] bzw. »Bearbeiten«-»Kopieren« kopieren und seine QF-Test ID durch drücken von [Strg-V] in das Textfeld einfügen.

Dieses Attribut unterstützt ein spezielles Format, das es erlaubt, Komponenten in anderen Testsuiten zu referenzieren (siehe Abschnitt 25.1). Des weiteren können Unterelemente von Knoten direkt angegeben werden, ohne dass ein eigener Knoten dafür vorhanden sein muss (siehe Abschnitt 5.9). Bei der Verwendung von SmartIDs können Sie ein GUI-Element direkt über seine Wiedererkennungsmerkmale adressieren. Weitere Informationen hierzu finden Sie in SmartID und 'Komponente'-Knoten versus SmartID.

Variabel: Ja

Einschränkungen: Darf nicht leer sein

'Event'

In dieser ComboBox können Sie die Art des Events festlegen. Die möglichen Werte sind KEY_PRESSED, KEY_TYPED und KEY_RELEASED, entsprechend den Event IDs der Java Klasse KeyEvent.

Zusätzlich können Sie den Pseudoevent 'Tastendruck' wählen, der bei der Wiedergabe durch eine entsprechende Abfolge von KEY_PRESSED, KEY_TYPED und KEY_RELEASED Events simuliert wird, wobei der KEY_TYPED Event nur generiert wird, wenn keyChar nicht 65535 ist, d.h. wenn es sich nicht um eine Sonder- oder Funktionstaste handelt.

Variabel: Nein

Einschränkungen: Keine

'Taste'

Hiermit können Sie die Taste für den KeyEvent direkt festlegen und sich damit die Eingabe von KeyCode, KeyChar und Modifiers sparen. Wenn diese Komponente den Eingabefokus besitzt, werden die Werte der zuletzt gedrückten Taste übernommen. Für KEY_TYPED Events wird der keyCode automatisch auf 0 gesetzt.

Dabei ist eine kleine Besonderheiten zu beachten: Sie können die Tabulator Taste nicht auf diesem Weg wählen, da sie zum Wechsel des Fokus führt. KeyCode und KeyChar für diese Taste sind jeweils 9.

Variabel: Nein

Einschränkungen: Keine

'Key Code'

Dieser Code entspricht der Taste, die gedrückt oder losgelassen wurde. Bei einem KEY_TYPED Event ist dieser Wert 0.

Variabel: Ja

Einschränkungen: Gültige Zahl

'Key Char'

Dies ist das Zeichen, das durch den letzten Tastendruck gebildet wurde. Hierin ist der Zustand der Shifttaste berücksichtigt. Sonder- und Funktionstasten haben keinen individuellen 'Key Char', sondern alle den Wert 65535.

Variabel: Ja

Einschränkungen: Gültige Zahl

'Modifiers'

Bei Tastatur- und Mausevents wird mit diesem Attribut der Zustand der Tasten Shift, Strg und Alt sowie der Maustasten festgelegt. Jeder Taste ist dabei ein Wert zugeordnet, Kombinationen erhält man durch Addition.

Die Werte im Einzelnen:

WertTaste
1Shift
2Strg
4Meta bzw. rechte Maustaste (Langer Klick bei Android und iOS)
8Alt bzw. mittlere Maustaste
16Linke Maustaste
Tabelle 41.17:  Modifier Werte

Variabel: Ja

Einschränkungen: Gültige Zahl

'QF-Test ID'

Die QF-Test ID ist für diesen Knoten zur Zeit ohne Bedeutung.

Variabel: Nein

Einschränkungen: Darf keines der Zeichen '\', '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.

'Verzögerung vorher/nachher'

Mit diesen Parametern kann vor oder nach der Ausführung eine Verzögerung bewirkt werden. Sind sie nicht gesetzt, wird die Standardverzögerung aus den Optionen verwendet.

Variabel: Ja

Einschränkungen: Leer oder >0

'Bemerkung'

Hier können Sie einen beliebigen Kommentar eintragen.

Hinweis Für die ausführliche Dokumentation, insbesondere von 'Testfallsatz', 'Testfall' oder 'Prozedur' Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von [Alt-Eingabe] oder Klicken des Externer Editor Buttons der Kommentar komfortabel bearbeitet werden kann.

Für einige Knoten können Sie ein spezielles Verhalten per Doctags konfigurieren, siehe Doctags.

Falls bei 'Komponenten' Knoten in dem Bemerkungsfeld eine Eintragung gemacht wurde, wird der Knoten bei der Suche bzw. dem Löschen von ungenutzten Komponenten übersprungen.

Variabel: Ja

Einschränkungen: Keine

'Texteingabe'

Hierbei handelt es sich um einen Pseudoevent, mit dessen Hilfe die Eingabe von Text im SUT vereinfacht wird. Anstatt für jedes Zeichen des einzugebenden Textes drei 'Tastaturevent' Knoten anzulegen (KEY_PRESSED, KEY_TYPED und KEY_RELEASED), können Sie beinahe den selben Effekt mit einem 'Texteingabe' Knoten erreichen.

Hierbei macht sich QF-Test zu Nutze, dass Java für Texteingaben in ein Feld nur die KEY_TYPED Events auswertet. Beim Abspielen einer 'Texteingabe' werden im SUT daher nur KEY_TYPED Events simuliert, keine KEY_PRESSED oder KEY_RELEASED Events.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Keine

Ausführung: Die Zeichenfolge des Events wird zusammen mit den Daten der Zielkomponente an das SUT geschickt. Die TestEventQueue ermittelt daraus im SUT die passende Komponente und löst für jedes Zeichen einen KEY_TYPED Event im SUT aus.

Attribute:

Texteingabe Attribute
Abbildung 41.57:  'Texteingabe' Attribute
'Client'

Der Name unter dem der Java-Prozess des SUT gestartet wurde, an den der Event geschickt werden soll.

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

'QF-Test ID der Komponente'

Die QF-Test ID des 'Fenster', 'Komponente' oder 'Element' Knotens, auf den sich der Event bezieht.

Der "Komponente auswählen" Button [Komponente auswählen] öffnet einen Dialog, in dem Sie die Komponente (siehe Kapitel 5) direkt auswählen können. Diesen erreichen Sie auch mittels [Shift-Return] oder [Alt-Return], sofern sich der Fokus im Textfeld befindet. Alternativ können Sie den gewünschten Knoten mittels [Strg-C] bzw. »Bearbeiten«-»Kopieren« kopieren und seine QF-Test ID durch drücken von [Strg-V] in das Textfeld einfügen.

Dieses Attribut unterstützt ein spezielles Format, das es erlaubt, Komponenten in anderen Testsuiten zu referenzieren (siehe Abschnitt 25.1). Des weiteren können Unterelemente von Knoten direkt angegeben werden, ohne dass ein eigener Knoten dafür vorhanden sein muss (siehe Abschnitt 5.9). Bei der Verwendung von SmartIDs können Sie ein GUI-Element direkt über seine Wiedererkennungsmerkmale adressieren. Weitere Informationen hierzu finden Sie in SmartID und 'Komponente'-Knoten versus SmartID.

Variabel: Ja

Einschränkungen: Darf nicht leer sein

'Text'

Der Text, der im SUT in ein Feld eingegeben werden soll.

Hinweis Bei der Eingabe von Text in ein Kennwort-Feld ist es eventuell unerwünscht, das Kennwort im Klartext in der Testsuite oder dem Protokoll abzulegen. Um das Kennwort nach Eingabe in dieses Feld zu verschlüsseln, wählen Sie nach einem Rechts-Klick »Kennwort verschlüsseln« aus dem resultierenden Popupmenü. Geben Sie auf jeden Fall vor der Verschlüsselung einen Salt in der Option Salt für Verschlüsselung von Kennwörtern an.

Variabel: Ja

Einschränkungen: Keine Zeilenumbrüche möglich.

'Zielkomponente zunächst leeren'

Ist dieses Attribut gesetzt und handelt es sich bei der Zielkomponente um ein Textfeld, wird der Inhalt des Feldes automatisch gelöscht, bevor der neue Text eingegeben wird.

Variabel: Ja

Einschränkungen: Keine

'Einzelne Events wiedergeben'

Handelt es sich bei der Zielkomponente um ein Textfeld, kann der Text auch direkt über die API der Komponente eingegeben werden, ohne einzelne Events zu simulieren. Dies ist wesentlich schneller, hat aber den Nachteil, dass eventuell vorhandene KeyListener des SUT nicht benachrichtigt werden. Ist dieses Attribut gesetzt, werden für jedes einzelne Zeichen Events generiert.

Variabel: Ja

Einschränkungen: Keine

'QF-Test ID'

Die QF-Test ID ist für diesen Knoten zur Zeit ohne Bedeutung.

Variabel: Nein

Einschränkungen: Darf keines der Zeichen '\', '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.

'Verzögerung vorher/nachher'

Mit diesen Parametern kann vor oder nach der Ausführung eine Verzögerung bewirkt werden. Sind sie nicht gesetzt, wird die Standardverzögerung aus den Optionen verwendet.

Variabel: Ja

Einschränkungen: Leer oder >0

'Bemerkung'

Hier können Sie einen beliebigen Kommentar eintragen.

Hinweis Für die ausführliche Dokumentation, insbesondere von 'Testfallsatz', 'Testfall' oder 'Prozedur' Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von [Alt-Eingabe] oder Klicken des Externer Editor Buttons der Kommentar komfortabel bearbeitet werden kann.

Für einige Knoten können Sie ein spezielles Verhalten per Doctags konfigurieren, siehe Doctags.

Falls bei 'Komponenten' Knoten in dem Bemerkungsfeld eine Eintragung gemacht wurde, wird der Knoten bei der Suche bzw. dem Löschen von ungenutzten Komponenten übersprungen.

Variabel: Ja

Einschränkungen: Keine

'Fensterevent'

WindowEvents sind nur begrenzt für eine Testsuite interessant, da die meisten von ihnen als Folge von Programmabläufen im Client generiert werden und nicht vom Anwender direkt. Eine Ausnahme ist der Event WINDOW_CLOSING, der dem Schließen eines Fensters durch den Anwender entspricht. Außerdem können auch WINDOW_ICONIFIED und WINDOW_DEICONIFIED Events ausgeführt werden.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Keine

Ausführung: Der Event wird zusammen mit den Daten des Zielfensters an das SUT geschickt. Die TestEventQueue ermittelt daraus im SUT das passende Fenster und löst den Event im SUT aus.

Attribute:

Fensterevent Attribute
Abbildung 41.58:  'Fensterevent' Attribute
'Client'

Der Name unter dem der Java-Prozess des SUT gestartet wurde, an den der Event geschickt werden soll.

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

'QF-Test ID der Komponente'

Die QF-Test ID des 'Fenster', 'Komponente' oder 'Element' Knotens, auf den sich der Event bezieht.

Der "Komponente auswählen" Button [Komponente auswählen] öffnet einen Dialog, in dem Sie die Komponente (siehe Kapitel 5) direkt auswählen können. Diesen erreichen Sie auch mittels [Shift-Return] oder [Alt-Return], sofern sich der Fokus im Textfeld befindet. Alternativ können Sie den gewünschten Knoten mittels [Strg-C] bzw. »Bearbeiten«-»Kopieren« kopieren und seine QF-Test ID durch drücken von [Strg-V] in das Textfeld einfügen.

Dieses Attribut unterstützt ein spezielles Format, das es erlaubt, Komponenten in anderen Testsuiten zu referenzieren (siehe Abschnitt 25.1). Des weiteren können Unterelemente von Knoten direkt angegeben werden, ohne dass ein eigener Knoten dafür vorhanden sein muss (siehe Abschnitt 5.9). Bei der Verwendung von SmartIDs können Sie ein GUI-Element direkt über seine Wiedererkennungsmerkmale adressieren. Weitere Informationen hierzu finden Sie in SmartID und 'Komponente'-Knoten versus SmartID.

Variabel: Ja

Einschränkungen: Darf nicht leer sein

'Event'

In dieser ComboBox können Sie die Art des Events festlegen. Die möglichen Werte sind WINDOW_OPENED, WINDOW_CLOSING, WINDOW_CLOSED, WINDOW_ACTIVATED, WINDOW_DEACTIVATED, WINDOW_ICONIFIED und WINDOW_DEICONIFIED, entsprechend den Event IDs der Java-Klasse WindowEvent.

Variabel: Nein

Einschränkungen: Keine

'QF-Test ID'

Die QF-Test ID ist für diesen Knoten zur Zeit ohne Bedeutung.

Variabel: Nein

Einschränkungen: Darf keines der Zeichen '\', '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.

'Verzögerung vorher/nachher'

Mit diesen Parametern kann vor oder nach der Ausführung eine Verzögerung bewirkt werden. Sind sie nicht gesetzt, wird die Standardverzögerung aus den Optionen verwendet.

Variabel: Ja

Einschränkungen: Leer oder >0

'Bemerkung'

Hier können Sie einen beliebigen Kommentar eintragen.

Hinweis Für die ausführliche Dokumentation, insbesondere von 'Testfallsatz', 'Testfall' oder 'Prozedur' Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von [Alt-Eingabe] oder Klicken des Externer Editor Buttons der Kommentar komfortabel bearbeitet werden kann.

Für einige Knoten können Sie ein spezielles Verhalten per Doctags konfigurieren, siehe Doctags.

Falls bei 'Komponenten' Knoten in dem Bemerkungsfeld eine Eintragung gemacht wurde, wird der Knoten bei der Suche bzw. dem Löschen von ungenutzten Komponenten übersprungen.

Variabel: Ja

Einschränkungen: Keine

'Komponentenevent'

Für QF-Test sind ComponentEvents eigentlich auch WindowEvents, da es alle ComponentEvents herausfiltert, die sich nicht auf Fenster beziehen. Übrig bleiben die Events COMPONENT_MOVED und COMPONENT_SIZED, die über den WindowManager an das SUT gelangen. Wird bei Web Tests statt einer 'Webseite' -Komponente eine HTML-Komponente angegeben, so wird das Browserfenster so angepasst, dass der Rendering-Bereich des Browsers in Größe bzw. Position mit den angegebenen Werten übereinstimmt.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Keine

Ausführung: Der Event wird zusammen mit den Daten des Zielfensters an das SUT geschickt. Die TestEventQueue ermittelt daraus im SUT das passende Fenster und löst den Event im SUT aus.

Attribute:

Komponentenevent Attribute
Abbildung 41.59:  'Komponentenevent' Attribute
'Client'

Der Name unter dem der Java-Prozess des SUT gestartet wurde, an den der Event geschickt werden soll.

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

'QF-Test ID der Komponente'

Die QF-Test ID des 'Fenster', 'Komponente' oder 'Element' Knotens, auf den sich der Event bezieht.

Der "Komponente auswählen" Button [Komponente auswählen] öffnet einen Dialog, in dem Sie die Komponente (siehe Kapitel 5) direkt auswählen können. Diesen erreichen Sie auch mittels [Shift-Return] oder [Alt-Return], sofern sich der Fokus im Textfeld befindet. Alternativ können Sie den gewünschten Knoten mittels [Strg-C] bzw. »Bearbeiten«-»Kopieren« kopieren und seine QF-Test ID durch drücken von [Strg-V] in das Textfeld einfügen.

Dieses Attribut unterstützt ein spezielles Format, das es erlaubt, Komponenten in anderen Testsuiten zu referenzieren (siehe Abschnitt 25.1). Des weiteren können Unterelemente von Knoten direkt angegeben werden, ohne dass ein eigener Knoten dafür vorhanden sein muss (siehe Abschnitt 5.9). Bei der Verwendung von SmartIDs können Sie ein GUI-Element direkt über seine Wiedererkennungsmerkmale adressieren. Weitere Informationen hierzu finden Sie in SmartID und 'Komponente'-Knoten versus SmartID.

Variabel: Ja

Einschränkungen: Darf nicht leer sein

'Event'

In dieser ComboBox können Sie die Art des Events festlegen. Die möglichen Werte sind COMPONENT_SIZED und COMPONENT_MOVED, entsprechend den Event IDs der Java-Klasse ComponentEvent.

Variabel: Nein

Einschränkungen: Keine

'X/Breite'

Für einen COMPONENT_MOVED Event geben Sie hier die neue X-Koordinate des Fensters an, für einen COMPONENT_SIZED Event die neue Breite.

Variabel: Ja

Einschränkungen: Gültige Zahl, Breite > 0

'Y/Höhe'

Für einen COMPONENT_MOVED Event geben Sie hier die neue Y-Koordinate des Fensters an, für einen COMPONENT_SIZED Event die neue Höhe.

Variabel: Ja

Einschränkungen: Gültige Zahl, Höhe > 0

'QF-Test ID'

Die QF-Test ID ist für diesen Knoten zur Zeit ohne Bedeutung.

Variabel: Nein

Einschränkungen: Darf keines der Zeichen '\', '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.

'Verzögerung vorher/nachher'

Mit diesen Parametern kann vor oder nach der Ausführung eine Verzögerung bewirkt werden. Sind sie nicht gesetzt, wird die Standardverzögerung aus den Optionen verwendet.

Variabel: Ja

Einschränkungen: Leer oder >0

'Bemerkung'

Hier können Sie einen beliebigen Kommentar eintragen.

Hinweis Für die ausführliche Dokumentation, insbesondere von 'Testfallsatz', 'Testfall' oder 'Prozedur' Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von [Alt-Eingabe] oder Klicken des Externer Editor Buttons der Kommentar komfortabel bearbeitet werden kann.

Für einige Knoten können Sie ein spezielles Verhalten per Doctags konfigurieren, siehe Doctags.

Falls bei 'Komponenten' Knoten in dem Bemerkungsfeld eine Eintragung gemacht wurde, wird der Knoten bei der Suche bzw. dem Löschen von ungenutzten Komponenten übersprungen.

Variabel: Ja

Einschränkungen: Keine

'Auswahl'

Ein 'Auswahl' Knoten repräsentiert einen abstrakten Event, wie das Selektieren eines Menüpunktes, das Auswählen eines Eintrags in einer ComboBox oder eine Auswahl in oder das Schließen von einem System-Dialog. Aktuell wird dieser Event-Knoten nur für SWT, Web und Electron SUTs verwendet, wo einige Aktionen nicht über "weiche" Mausevents angestoßen werden können. Die Alternative des Verwendens von "harten" Mausevents hat einige Nachteile, wie sie beim 'Als "harten" Event wiedergeben' Attribut des 'Mausevent' Knotens beschrieben werden.

Das 'Detail' Attribut bestimmt den Typ der Aktion oder den zu selektierenden Wert, je nach Zielkomponente.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Keine

Ausführung: Der Event wird an das SUT geschickt, zusammen mit den Daten über die Zielkomponente. Die Komponente wird aufgelöst und eine Aktion durchgeführt, die vom Typ der Komponente abhängt, wie es die Tabelle oben zeigt.

Attribute:

Mouse event attributes
Abbildung 41.60:  'Auswahl' Attribute
'Client'

Der Name unter dem der Java-Prozess des SUT gestartet wurde, an den der Event geschickt werden soll.

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

'QF-Test ID der Komponente'

Die QF-Test ID des 'Fenster', 'Komponente' oder 'Element' Knotens, auf den sich der Event bezieht.

Der "Komponente auswählen" Button [Komponente auswählen] öffnet einen Dialog, in dem Sie die Komponente (siehe Kapitel 5) direkt auswählen können. Diesen erreichen Sie auch mittels [Shift-Return] oder [Alt-Return], sofern sich der Fokus im Textfeld befindet. Alternativ können Sie den gewünschten Knoten mittels [Strg-C] bzw. »Bearbeiten«-»Kopieren« kopieren und seine QF-Test ID durch drücken von [Strg-V] in das Textfeld einfügen.

Dieses Attribut unterstützt ein spezielles Format, das es erlaubt, Komponenten in anderen Testsuiten zu referenzieren (siehe Abschnitt 25.1). Des weiteren können Unterelemente von Knoten direkt angegeben werden, ohne dass ein eigener Knoten dafür vorhanden sein muss (siehe Abschnitt 5.9). Bei der Verwendung von SmartIDs können Sie ein GUI-Element direkt über seine Wiedererkennungsmerkmale adressieren. Weitere Informationen hierzu finden Sie in SmartID und 'Komponente'-Knoten versus SmartID.

Variabel: Ja

Einschränkungen: Darf nicht leer sein

'Detail'

Dieses Attribut bestimmt den Typ der Aktion oder den zu selektierenden Wert, je nach Zielkomponente. Die möglichen Kombinationen sind nachfolgend im Detail aufgeführt.

SWT Die folgenden Kombinationen von SWT Komponenten (Widgets) und 'Detail' Attribut werden aktuell für SWT unterstützt:

Klasse'Detail' AttributAktion
CCombo UnterelementLeerUnterelement als aktuellen Wert auswählen
ColorDialogFarbwert in hexadezimalem #rrggbb FormatAngegebene Farbe auswählen
ColorDialogCANCELFarbauswahl abbrechen
Combo UnterelementLeerUnterelement als aktuellen Wert auswählen
CTabFolder UnterelementLeerReiter auswählen
CTabFolder UnterelementcloseReiter schließen
DirectoryDialogVerzeichnisAngegebenes Verzeichnis auswählen
DirectoryDialogCANCELVerzeichnisauswahl abbrechen
FileDialogDateiname, inklusive VerzeichnisAngegebene Datei auswählen
FileDialogCANCELDateiauswahl abbrechen
FontDialogFont-Beschreibung, systemspezifischAngegebenen Font auswählen
FontDialogCANCELFontauswahl abbrechen
MenucloseMenü abbrechen (Schließen ohne Selektion)
MenuItemLeerMenüeintrag auswählen
MessageBox Einer der Werte OKYESNOCANCELABORTRETRYIGNOREOPENSAVEMit dem angegebenen Wert als Auswahl schließen
ProgressBarWert für ProgressBarAngegebenen Wert setzen
ScaleWert für ScaleAngegebenen Wert setzen
SliderWert für SliderAngegebenen Wert setzen
SpinnerWert für SpinnerAngegebenen Wert setzen
TabFolder UnterelementLeerReiter auswählen
Tabelle 41.18:  Unterstützte SWT Widgets für einen 'Auswahl' Event

Hinweis Eclipse/RCP verwendet viele dynamische CTabFolder bei denen die Unterelemente, also die Reiter, zwischen den Foldern verschoben werden können. Die Reiter repräsentieren die eigentlichen Business Objects, während die Folder nur ein Gerüst bilden um diese aufzunehmen. Zudem kann sich die Anordnung der Reiter und Folder bei einem Wechsel der Perspektive drastisch verändern. Daher ist es oft wünschenswert, einen Reiter direkt selektieren oder schließen zu können, unabhängig davon in welchem CTabFolder er sich gerade befindet. Dies kann mit Hilfe der 'Prozeduren'qfs.qft#qfs.swt.ctabfolder.selectTab und qfs.qft#qfs.swt.ctabfolder.closeTab erreicht werden, die mit der Standardbibliothek qfs.qft bereitgestellt werden. Neben dem allgegenwärtigen client Parameter muss nur der Parameter tabname mit dem Namen des gewünschten Reiters angegeben werden.

Web Die folgenden Kombinationen von DOM-Knoten und 'Detail' Attribut werden aktuell für Web SUTs unterstützt:

Knotentyp'Detail' AttributAktion
Bestätigungsdialog Einer der Werte OKYESNOCANCELRETRYDialog mit dem angegebenen Wert als Auswahl schließen
Dateiauswahldialog für Download Die zu speichernde Datei oder CANCEL Schließt den Dialog und speichert die gewählte Datei oder bricht den Download ab
Anmeldungsdialog Name|Kennwort oder CANCEL Schließt den Dialog zur Anmeldung mit den angegebenen Daten oder bricht die Anmeldung ab. Das Kennwort kann durch Rechts-Klick und Auswahl von »Kennwort verschlüsseln« im resultierenden Popupmenü verschlüsselt werden. Geben Sie auf jeden Fall vor der Verschlüsselung einen Salt in der Option Salt für Verschlüsselung von Kennwörtern an.
Eingabedialog Der einzugebende Text oder CANCEL Schließt den Dialog liefert den eingegebenen Text oder bricht die Eingabe ab
<DOCUMENT> auf oberster EbenebackNavigiert zurück zur vorhergehenden Seite
<DOCUMENT> auf oberster EbeneforwardNavigiert vorwärts zur nächsten Seite
<DOCUMENT> auf oberster Ebenegoto:URLNavigiert zur angegebenen URL
<DOCUMENT> auf oberster EbenerefreshLädt die aktuelle Seite neu
<DOCUMENT> auf oberster EbenestopBeendet das Laden der aktuelle Seite
<OPTION> oder Unterelement von <SELECT> 0Wählt die <OPTION> als aktuellen Wert
<OPTION> oder Unterelement von <SELECT> 1Fügt die <OPTION> zur Selektion hinzu
<OPTION> oder Unterelement von <SELECT> -1Entfernt die <OPTION> aus der Selektion
Tabelle 41.19:  Unterstützte DOM-Knoten für einen 'Auswahl' Event

Electron Die folgenden Kombinationen von DOM-Knoten und 'Detail' Attribut werden aktuell für Electron-Anwendungen (siehe Kapitel 20) unterstützt, zusätzlich zu den oben für Web genannten:

Knotentyp'Detail' AttributAktion
Menüclickmenu:@/<Menüpfad> Wobei <Menüpfad> das Menü und den oder die Untermenüpunkte, getrennt durch / bezeichnet. Wenn Sie zum Beispiel im Menü Datei den Unterpunkt Speichern unter aktivieren wollen, lautet der Eintrag clickmenu:@Datei/Speichern unter. Im Attribut 'QF-Test ID der Komponente' ist die 'QF-Test ID' des Knotens Webseite des SUT einzutragen.
Dialogselect:@/<Rückgabewert>Salt für Verschlüsselung von Kennwörtern Schließt einen geöffneten Dialog. Weitere Informationen zu Rückgabewerten finden Sie in Native Dialoge. Im Attribut 'QF-Test ID der Komponente' muss die 'QF-Test ID' des Knotens Web page des SUTs angegeben werden.
Error-Dialogselect:1Schließt den Error-Dialog.
Message-Boxselect:2:trueWählt den Button mit der Id 2 aus und setzt den Wert der Checkbox auf "true".
Speichern-Dialogselect:"C:\path\to\my.file"Schließt den Speichern-Dialog und gibt den angegebenen Pfad zurück.
Öffnen-Dialogselect:["C:\path\to\my.file"]Schließt den Öffnen-Dialog und gibt den angegebenen Pfad zurück.
Öffnen-Dialogselect:["C:\path\to\my\first.file", "C:\path\to\my\second.file"]Schließt den Öffnen-Dialog und gibt die angegebenen Pfade zurück.
Tabelle 41.20:  Unterstützte DOM-Knoten bei Electron SUTs für einen 'Auswahl' Event

Android
iOS Die folgenden Werte für das 'Detail' Attribut werden aktuell für Android-Anwendungen (siehe Kapitel 16) und iOS-Anwendungen (siehe Kapitel 17) unterstützt. Wenn Sie den 'Auswahl' Knoten lieber über eine Prozedur ausführen, ohne sich um die Syntax im 'Detail' Attribut kümmern zu müssen, können Sie die Prozeduren in den Packages qfs.android.device, beziehungsweise qfs.ios.device, in der Standardbibliothekqfs.qft nutzen.

Knotentyp'Detail' AttributAktion
Alle (wird ignoriert)HOME Klick auf den Home-Button des Emulators.
Nur Android, alle (wird ignoriert)BACK Klick auf den Back-Button des Emulators.
Nur Android, alle (wird ignoriert)APP_SWITCH Klick auf den App-Switch-Button des Emulators.
Alle (wird ignoriert)rotate: <Winkel>rotate dreht die gesamte Anzeige um den angegebenen Winkel. Gültige Werte: 0, 90, 180, 270.
Alle (wird ignoriert)turn: <Richtung>turn dreht die gesamte Anzeige 90 Grad in der angegebenen Richtung. Gültige Werte: left, right.
Alleswipe: <Richtung> Swipe auf einer Komponente in eine bestimmte Richtung. Mögliche Angaben für die Wischbewegung sind (jeweils ohne Anführungszeichen):
  • vom linken zum rechten Rand der Komponente: "right", "→", "go_left", "prevPage", "⭢",
  • vom rechten zum linken Rand der Komponente: "left", "←", "go_right", "nextPage", "⭠",
  • vom unteren zum oberen Rand der Komponente: "up", "↑", "go_down", "scrollDown", "⭡",
  • vom oberen zum unteren Rand der Komponente: "down", "↓", "go_up", "scrollUp", "⭣",
  • von der oberen linken zur unteren rechten Ecke der Komponente: "down_right", "↘", "go_up_left", "⭨",
  • von der unteren rechten zur oberen linken Ecke der Komponente: "up_left", "↖", "go_down_right", "⭦",
  • von der oberen rechten zur unteren linken Ecke der Komponente: "down_left", "↙", "go_up_right", "⭩",
  • von der unteren linken zur oberen rechten Ecke der Komponente: "up_right", "↗", "go_down_left" and "⭧".
Alleswipe: <Startkoordinate X> <Startkoordinate Y> <Endkoordinate X> <Endkoordinate X> [<Zeit in ms> [<Teilschritte>]] Swipe auf einer Komponente, wobei der Swipe-Anfang und das Swipe-Ende durch die angegebenen Koordinaten spezifiziert wird. Optional kann die Zeit angegeben werden, die die Aktion dauern soll. Wenn die Zeit angegeben wird, kann optional zusätzlich die Anzahl Teilschritte angegeben werden, in die die Wischaktion aufgegliedert wird. Die Teilschritte müssen nur in Spezialfällen angegeben werden.
Die Koordinaten können als Anzahl der Pixel (bezogen auf die obere linke Ecke der Komponente) oder als Position angegeben werden, siehe Tabelle Positionsangaben für Gesten.
Beispiele: swipe: W C E C wischt also mittig (C = Center) von links (W = Westen) der Komponente nach rechts (E = Osten) mittig der Komponente, swipe: C N C S von oben nach unten und swipe: 0 0 E S von links oben nach rechts unten.
Allezoom: <Startkoordinate X> <Startkoordinate Y> <Entfernung> <Winkel> zoom ist eine Zweifingeraktion. Die Startposition der beiden Finger wird über die Startkoordinaten festgelegt, die Bewegung über die Entfernung (in Pixeln) und den Winkel (0 bis 359). Der Winkel 0 stellt eine horizontale, 90 eine senkrechte Bewegung dar. Hierbei entfernen sich die Finger jeweils um die angegebene Entfernung in entgegengesetzter Richtung vom Startpunkt.
Die Koordinaten können als Anzahl der Pixel (bezogen auf die obere linke Ecke der Komponente) oder als Position angegeben werden, siehe Tabelle Positionsangaben für Gesten.
Beispiele: zoom: C C 50 0 zoom, ausgehend von der Mitte bewegen sich die "Finger" jeweils 50 Pixel horizontal.
Allepinch: <Finger 1 X> <Finger 1 Y> <Finger 2 X> <Finger 2 X>pinch ist eine Zweifingeraktion. Die Koordinaten geben die Positionen der beiden Finger an. Bei der Bewegung bewegen sich die Finger gleichmäßig auf einander zu bis sie sich treffen.
Die Koordinaten können als Anzahl der Pixel (bezogen auf die obere linke Ecke der Komponente) oder als Position angegeben werden, siehe Tabelle Positionsangaben für Gesten.
Beispiele: pinch: 20 C 50 C horizontal in der Mitte der Komponenten bewegen sich die "Finger" von den Pixelpositionen 20 und 50 zueinander.
Tabelle 41.21:  Unterstützte Werte für ein 'Auswahl' Knoten für Android und iOS

 

Für Gesten werden Start- und Endpunkte spezifiziert. Jeder Punkt hat eine X- und eine Y-Komponente. Diese kann entweder als Anzahl der Pixel (bezogen auf die obere linke Ecke der Komponente) oder als Position angegeben werden. Folgende Positionsangaben sind möglich:

PositionsangabeErläuterung
N Oberer Rand der Komponente (Norden).
E Rechter Rand der Komponente (East = Osten).
S Unterer Rand der Komponente (Süden).
W Linker Rand der Komponente (Westen).
C Mitte der Komponente (Center) für die jeweilige Dimension.
Tabelle 41.22:  Positionsangaben für Gesten

Variabel: Ja

Einschränkungen: Keine

'QF-Test ID'

Die QF-Test ID ist für diesen Knoten zur Zeit ohne Bedeutung.

Variabel: Nein

Einschränkungen: Darf keines der Zeichen '\', '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.

'Verzögerung vorher/nachher'

Mit diesen Parametern kann vor oder nach der Ausführung eine Verzögerung bewirkt werden. Sind sie nicht gesetzt, wird die Standardverzögerung aus den Optionen verwendet.

Variabel: Ja

Einschränkungen: Leer oder >0

'Bemerkung'

Hier können Sie einen beliebigen Kommentar eintragen.

Hinweis Für die ausführliche Dokumentation, insbesondere von 'Testfallsatz', 'Testfall' oder 'Prozedur' Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von [Alt-Eingabe] oder Klicken des Externer Editor Buttons der Kommentar komfortabel bearbeitet werden kann.

Für einige Knoten können Sie ein spezielles Verhalten per Doctags konfigurieren, siehe Doctags.

Falls bei 'Komponenten' Knoten in dem Bemerkungsfeld eine Eintragung gemacht wurde, wird der Knoten bei der Suche bzw. dem Löschen von ungenutzten Komponenten übersprungen.

Variabel: Ja

Einschränkungen: Keine

'Dateiauswahl'

Eine Dateiauswahl nimmt unter den Ereignissen eine Sonderstellung ein, da es sich nicht um ein einfaches, sondern ein komplexes Pseudo-Ereignis handelt.

Der Hintergrund ist, dass Java bei der Dateiauswahl mit Hilfe eines java.awt.FileDialog die Kontrolle über den Dialog komplett an das Betriebssystem abgibt. Damit lassen sich während der Dateiauswahl keine Maus- und Tastaturevents aufzeichnen und ebenso wenig simulieren. Dieses Problem tritt nicht bei Verwendung eines eigenen Dateiauswahldialogs, oder des Swing javax.swing.JFileChooser auf.

Daher nimmt QF-Test nur das Ergebnis der Dateiauswahl auf und legt es in Form dieses Knotens ab. Bei der Wiedergabe werden die Daten entsprechend an den Dialog übergeben, bevor er geschlossen wird. Für das SUT ist das im Endeffekt nicht von einer Dateiauswahl durch den Anwender zu unterscheiden.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Keine

Ausführung: Datei und Verzeichnis werden an einen geöffneten java.awt.FileDialog übergeben und dieser wird geschlossen. Ist kein FileDialog geöffnet, wird eine ComponentNotFoundException geworfen.

Attribute:

Dateiauswahl Attribute
Abbildung 41.61:  'Dateiauswahl' Attribute
'Client'

Der Name unter dem der Java-Prozess des SUT gestartet wurde, an den der Event geschickt werden soll.

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

'Datei'

Der Name der Datei (ohne Verzeichnispfad), die im Dialog ausgewählt werden soll.

Variabel: Ja

Einschränkungen: Darf nicht leer sein

'Verzeichnis'

Das Verzeichnis der Datei, die im Dialog ausgewählt werden soll.

Variabel: Ja

Einschränkungen: Darf nicht leer sein

'GUI-Engine'

Die GUI-Engine zu der der Dateiauswahl Dialog gehört. Nur relevant für SUTs mit mehr als einer GUI-Engine wie in Kapitel 44 beschrieben.

Variabel: Ja

Einschränkungen: Siehe Kapitel 44

'QF-Test ID'

Die QF-Test ID ist für diesen Knoten zur Zeit ohne Bedeutung.

Variabel: Nein

Einschränkungen: Darf keines der Zeichen '\', '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.

'Verzögerung vorher/nachher'

Mit diesen Parametern kann vor oder nach der Ausführung eine Verzögerung bewirkt werden. Sind sie nicht gesetzt, wird die Standardverzögerung aus den Optionen verwendet.

Variabel: Ja

Einschränkungen: Leer oder >0

'Bemerkung'

Hier können Sie einen beliebigen Kommentar eintragen.

Hinweis Für die ausführliche Dokumentation, insbesondere von 'Testfallsatz', 'Testfall' oder 'Prozedur' Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von [Alt-Eingabe] oder Klicken des Externer Editor Buttons der Kommentar komfortabel bearbeitet werden kann.

Für einige Knoten können Sie ein spezielles Verhalten per Doctags konfigurieren, siehe Doctags.

Falls bei 'Komponenten' Knoten in dem Bemerkungsfeld eine Eintragung gemacht wurde, wird der Knoten bei der Suche bzw. dem Löschen von ungenutzten Komponenten übersprungen.

Variabel: Ja

Einschränkungen: Keine