42.10
Abfragen

Das Automatisieren eines Tests wird dann schwierig, wenn sich das SUT dynamisch verhält, d.h. wenn sich Dinge bei jedem Programmlauf anders verhalten. Das ist z.B. der Fall, wenn IDs für Datenbankfelder generiert werden, die aktuelle Uhrzeit Eingang in Datensätze findet, etc.

Neben seinen Kontrollstrukturen bietet QF-Test die Möglichkeit, Daten aus Komponenten der Oberfläche des SUT auszulesen und in der Testsuite weiter zu verwenden, z.B. als Index für ein Element, oder als Vergleichswert für einen Check.

42.10.1
Text auslesen

Mit diesem Knoten kann zur Laufzeit eines Tests der dargestellte Text einer Komponente oder eines Unterelements ausgelesen und einer lokalen oder globalen Variable zugewiesen werden. Um unerwünschte Seiteneffekte zu vermeiden wird der Inhalt der Variable beim Auslesen nicht automatisch expandiert.

Diese Operation macht nur für Komponenten oder Elemente Sinn, die einen Text darstellen. Die Angabe einer unzulässigen Komponente führt zu einer OperationNotSupportedException, ein überflüssiger Index zu einer UnexpectedIndexException. Die folgende Tabelle führt die möglichen Zielkomponenten und Unterelemente auf. (P/S) steht für Primärindex/Sekundärindex.

Web Bei Web-Anwendungen kann theoretisch jeder Knoten einen Text beinhalten, deshalb wird dort entweder der Text oder ein leerer Text zurückgegeben und des kommt nicht zu einer OperationNotSupportedException.

Klasse Index (P/S) Ergebnis
AbstractButton -/- getText()
Dialog -/- getTitle()
Frame -/- getTitle()
JComboBox -/- aktueller Wert (mit Renderer)
JComboBox Listenelement/- Listenelement (mit Renderer)
JEditorPane Zeichenposition/- Strukturelement an Position (experimentell)
JLabel -/- getText()
JList Listenelement/- Element (mit Renderer)
JTabbedPane Tab/- Titel des Tab
JTable Spalte/Zeile Zelleninhalt (mit Renderer)
JTableHeader Spalte/- Spaltentitel (mit Renderer)
JTextArea Zeilennummer/- Text in der Zeile
JTextComponent -/- getText()
JTree Knoten/- Knoten (mit Renderer)
Label -/- getText()
TextField -/- getText()
Tabelle 42.25:  Zulässige Komponenten für Text auslesen

Enthalten in: Alle Arten von Sequenzen.

Kinder: Keine

Ausführung: Die Daten der Zielkomponente werden an das SUT geschickt. Die TestEventQueue ermittelt daraus im SUT die passende Komponente, liest deren Text aus und liefert ihn zurück an QF-Test, wo er in einer globalen Variable abgelegt wird.

Attribute:

Text auslesen Attribute
Abbildung 42.68:  Text auslesen Attribute
Client

Der Name unter dem der Java-Prozess des SUT gestartet wurde, aus dem die Daten gelesen werden sollen.

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

QF-Test ID der Komponente

Die QF-Test ID des Fenster, Komponente oder Element Knotens dessen Daten abgefragt werden.

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 26.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

Variablenname

Der Name der globalen Variable, in der das Ergebnis der Abfrage abgelegt wird (vgl. Kapitel 6).

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

Lokale Variable

Ist dieses Attribut nicht gesetzt, wird die Variable in den globalen Definitionen gebunden. Andernfalls wird - sofern vorhanden - die oberste aktuelle Definition der Variablen überschrieben, sofern diese innerhalb des aktuellen Prozedur, Abhängigkeit oder Testfall Knotens liegt. Gibt es keine solche Definition, wird eine neue Definition im aktuellen Prozedur, Abhängigkeit oder Testfall Knoten angelegt, oder, falls kein solcher existiert, im obersten Knoten auf dem Variablen-Stapel mit Fallback auf die globalen Definitionen. Eine Erläuterung dieser Begriffe und weitere Details zu Variablen finden Sie in Kapitel 6.

Über die Option Attribut 'Lokale Variable' standardmäßig aktivieren kann der Wert voreingestellt werden.

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

42.10.2
Index auslesen

Hiermit kann die Position eines Unterelements einer komplexen Komponente ermittelt werden, dessen Text bekannt ist. Als Ziel muss daher ein Unterelement angegeben werden. Das Ergebnis wird einer lokalen oder globalen Variable zugewiesen.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Keine

Ausführung: Die Daten der Zielkomponente werden an das SUT geschickt. Die TestEventQueue ermittelt daraus im SUT die passende Komponente, sucht das Unterelement und liefert seine Position zurück an QF-Test, wo sie in einer globalen Variable abgelegt wird.

Attribute:

Index auslesen Attribute
Abbildung 42.69:  Index auslesen Attribute
Client

Der Name unter dem der Java-Prozess des SUT gestartet wurde, aus dem die Daten gelesen werden sollen.

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

QF-Test ID der Komponente

Die QF-Test ID des Fenster, Komponente oder Element Knotens dessen Daten abgefragt werden.

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 26.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

Variablenname

Der Name der globalen Variable, in der das Ergebnis der Abfrage abgelegt wird (vgl. Kapitel 6).

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

Lokale Variable

Ist dieses Attribut nicht gesetzt, wird die Variable in den globalen Definitionen gebunden. Andernfalls wird - sofern vorhanden - die oberste aktuelle Definition der Variablen überschrieben, sofern diese innerhalb des aktuellen Prozedur, Abhängigkeit oder Testfall Knotens liegt. Gibt es keine solche Definition, wird eine neue Definition im aktuellen Prozedur, Abhängigkeit oder Testfall Knoten angelegt, oder, falls kein solcher existiert, im obersten Knoten auf dem Variablen-Stapel mit Fallback auf die globalen Definitionen. Eine Erläuterung dieser Begriffe und weitere Details zu Variablen finden Sie in Kapitel 6.

Über die Option Attribut 'Lokale Variable' standardmäßig aktivieren kann der Wert voreingestellt werden.

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

42.10.3
Geometrie auslesen

Hiermit ermitteln Sie die Geometrie eines Fensters, einer Komponente oder eines Unterelements im SUT. Das Ergebnis wird in bis zu vier lokalen oder globalen Variablen abgelegt, je einer für X und Y-Koordinaten, Breite und Höhe.

Interessant ist dieser Knoten z.B. dann, wenn Sie einen Mausevent relativ zur rechten oder unteren Kante einer Komponente definieren wollen. Lesen Sie hierzu zunächst Breite und Höhe der Komponente aus und definieren Sie dann X und Y Koordinate des Mausevents über die erweiterte Variablensyntax für Berechnungen (vgl. Abschnitt 11.2).

Die folgende Tabelle führt die möglichen Unterelemente auf. (P/S) steht für Primärindex/Sekundärindex.

Klasse Index (P/S) Ergebnis
JList Listenelement/- Element
JTabbedPane Tab/- Tab
JTable Spalte/- Spalte
JTable Spalte/Zeile Zelle
JTableHeader Spalte/- Spaltentitel
JTree Knoten/- Knoten
Tabelle 42.26:  Zulässige Unterelemente für Geometrie auslesen

Enthalten in: Alle Arten von Sequenzen.

Kinder: Keine

Ausführung: Die Daten der Zielkomponente werden an das SUT geschickt. Die TestEventQueue ermittelt daraus im SUT die passende Komponente, berechnet deren Geometrie und schickt die Daten zurück an QF-Test, wo sie in globalen Variablen abgelegt werden.

Attribute:

Geometrie auslesen Attribute
Abbildung 42.70:  Geometrie auslesen Attribute
Client

Der Name unter dem der Java-Prozess des SUT gestartet wurde, aus dem die Daten gelesen werden sollen.

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

QF-Test ID der Komponente

Die QF-Test ID des Fenster, Komponente oder Element Knotens dessen Daten abgefragt werden.

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 26.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

Position relativ zum Fenster

Legt fest, ob die X und Y-Koordinaten einer Komponente oder eines Unterelements relativ zum Fenster oder relativ zur Parentkomponente sind.

Variabel: Nein

Einschränkungen: Keine.

Variable für X

Der Name der globalen Variable, in der die X-Koordinate abgelegt wird (vgl. Kapitel 6). Wenn Sie sich für die X-Koordinate nicht interessieren, lassen Sie dieses Feld leer.

Variabel: Ja

Einschränkungen: Keine

Variable für Y

Der Name der globalen Variable, in der die Y-Koordinate abgelegt wird (vgl. Kapitel 6). Wenn Sie sich für die Y-Koordinate nicht interessieren, lassen Sie dieses Feld leer.

Variabel: Ja

Einschränkungen: Keine

Variable für Breite

Der Name der globalen Variable, in der die Breite abgelegt wird (vgl. Kapitel 6). Wenn Sie sich für die Breite nicht interessieren, lassen Sie dieses Feld leer.

Variabel: Ja

Einschränkungen: Keine

Variable für Höhe

Der Name der globalen Variable, in der die Höhe abgelegt wird (vgl. Kapitel 6). Wenn Sie sich für die Höhe nicht interessieren, lassen Sie dieses Feld leer.

Variabel: Ja

Einschränkungen: Keine

Lokale Variable

Ist dieses Attribut nicht gesetzt, werden die Variablen in den globalen Definitionen gebunden. Andernfalls wird - sofern vorhanden - jeweils die oberste aktuelle Definition der Variablen überschrieben, sofern diese innerhalb des aktuellen Prozedur, Abhängigkeit oder Testfall Knotens liegt. Gibt es keine solche Definition, wird eine neue Definition im aktuellen Prozedur, Abhängigkeit oder Testfall Knoten angelegt, oder, falls kein solcher existiert, im obersten Knoten auf dem Variablen-Stapel mit Fallback auf die globalen Definitionen. Eine Erläuterung dieser Begriffe und weitere Details zu Variablen finden Sie in Kapitel 6.

Über die Option Attribut 'Lokale Variable' standardmäßig aktivieren kann der Wert voreingestellt werden.

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