Handbuch

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

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

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 Webanwendungen 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 37.22:  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 37.61:  '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 Button öffnet einen Dialog, in dem Sie die Komponente 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. Des weiteren können Unterelemente von Knoten direkt angegeben werden, ohne dass ein eigener Knoten dafür vorhanden sein muss. Näheres hierzu erfahren Sie in Abschnitt 20.1 und Abschnitt 6.3.

Variabel: Ja

Einschränkungen: Darf nicht leer sein

'Variablenname'

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

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, in den globalen Definitionen. Eine Erläuterung dieser Begriffe und weitere Details zu Variablen finden Sie in Kapitel 7.

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 Edit row Buttons der Kommentar komfortabel bearbeitet werden kann.

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

Variabel: Ja

Einschränkungen: Keine

37.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 37.62:  '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 Button öffnet einen Dialog, in dem Sie die Komponente 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. Des weiteren können Unterelemente von Knoten direkt angegeben werden, ohne dass ein eigener Knoten dafür vorhanden sein muss. Näheres hierzu erfahren Sie in Abschnitt 20.1 und Abschnitt 6.3.

Variabel: Ja

Einschränkungen: Darf nicht leer sein

'Variablenname'

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

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, in den globalen Definitionen. Eine Erläuterung dieser Begriffe und weitere Details zu Variablen finden Sie in Kapitel 7.

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 Edit row Buttons der Kommentar komfortabel bearbeitet werden kann.

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

Variabel: Ja

Einschränkungen: Keine

37.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 7.6).

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 37.23:  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 37.63:  '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 Button öffnet einen Dialog, in dem Sie die Komponente 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. Des weiteren können Unterelemente von Knoten direkt angegeben werden, ohne dass ein eigener Knoten dafür vorhanden sein muss. Näheres hierzu erfahren Sie in Abschnitt 20.1 und Abschnitt 6.3.

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 7). 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 7). 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 7). 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 7). 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, in den globalen Definitionen. Eine Erläuterung dieser Begriffe und weitere Details zu Variablen finden Sie in Kapitel 7.

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 Edit row Buttons der Kommentar komfortabel bearbeitet werden kann.

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

Variabel: Ja

Einschränkungen: Keine