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.

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

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.

KlasseIndex (P/S)Ergebnis
AbstractButton-/-getText()
Dialog-/-getTitle()
Frame-/-getTitle()
JComboBox-/-aktueller Wert (mit Renderer)
JComboBoxListenelement/-Listenelement (mit Renderer)
JEditorPaneZeichenposition/-Strukturelement an Position (experimentell)
JLabel-/-getText()
JListListenelement/-Element (mit Renderer)
JTabbedPaneTab/-Titel des Tab
JTableSpalte/ZeileZelleninhalt (mit Renderer)
JTableHeaderSpalte/-Spaltentitel (mit Renderer)
JTextAreaZeilennummer/-Text in der Zeile
JTextComponent-/-getText()
JTreeKnoten/-Knoten (mit Renderer)
Label-/-getText()
TextField-/-getText()
Tabelle 40.24:  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 40.67:  '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 24.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

'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 40.68:  '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 24.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

'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 6.6).

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

KlasseIndex (P/S)Ergebnis
JListListenelement/-Element
JTabbedPaneTab/-Tab
JTableSpalte/-Spalte
JTableSpalte/ZeileZelle
JTableHeaderSpalte/-Spaltentitel
JTreeKnoten/-Knoten
Tabelle 40.25:  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 40.69:  '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 24.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