Ablaufsteuerung

Neben den normalen Sequenzen verfügt QF-Test über eine Reihe von speziellen Kontrollstrukturen, die der Steuerung des Ablaufs eines Tests dienen. Diese orientieren sich an den gängigen Kontrollstrukturen, wie sie auch in Java vorhanden sind.

Außer Schleifen und bedingter Ausführung erbt QF-Test von Java auch die Art der Fehlerbehandlung mittels Exceptions, die im Fehlerfall bei der Ausführung eines Knotens "geworfen" werden. Eine Exception bricht die Ausführung eines Testlaufs schrittweise von unten nach oben ab, so lange bis sie durch ein 'Catch' abgefangen wird, oder bis der gesamte Test beendet ist.

Für Java-Entwickler ist dieses Konzept Teil der täglichen Arbeit. Wenn es Ihnen als Tester verwirrend erscheint, werden Ihre Entwickler es Ihnen sicher gerne erläutern.

Die Klassenhierarchie der Exceptions mit denen QF-Test arbeitet, hat ihre Wurzel in der Klasse TestException. Andere Exceptions wie ComponentNotFoundException sind Spezialisierungen davon. In Kapitel 41 erfahren Sie mehr zu diesem Thema.

Außerdem wird Skripting in Form von Jython (früher JPython), Groovy und JavaScript unterstützt. Mehr dazu in Kapitel 11.

'Schleife'

Hierbei handelt es sich um eine Sequenz die mehrfach ausgeführt werden kann. Neben der Anzahl der Wiederholungen kann auch der Name einer Variable angegeben werden, die die Nummer des jeweiligen Durchgangs zugewiesen bekommt.

Dieser Knoten dient vor allem dazu, die Aussage eines Tests über die Zuverlässigkeit des SUT und der Testvorschriften zu verbessern. Ein Test der 100 mal funktioniert sagt mehr aus, als ein Test der einmal funktioniert.

Das Verhalten von 'Schleifen' kann durch Zuweisen eines Wertes an die 'Zählervariable' innerhalb der 'Schleife' beeinflusst werden.

Die Ausführung der 'Schleife' kann mittels eines 'Break' Knotens vorzeitig abgebrochen werden. Ein optionaler 'Else' Knoten am Ende der 'Schleife' wird ausgeführt, falls alle Iterationen der 'Schleife' komplett durchlaufen wurden, ohne auf ein 'Break' zu treffen.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Beliebig

Ausführung: Die Variablen der Sequenz werden gebunden. Die Laufvariable erhält den Wert 0 und die Childknoten werden einer nach dem anderen ausgeführt. Für jede Wiederholung wird der Wert der Laufvariable um 1 erhöht und die Children erneut ausgeführt. Anschließend werden die Variablen der Sequenz wieder gelöscht.

Attribute:

Schleife Attribute
Abbildung 40.25:  'Schleife' Attribute
'Name'

Der Name einer Sequenz ist eine Art Kurzkommentar. Er wird in der Baumdarstellung der Testsuite angegeben und sollte etwas über die Funktion der Sequenz aussagen.

Variabel: Nein

Einschränkungen: Keine

'Anzahl Wiederholungen'

Dieser Wert legt die Anzahl der Durchgänge für die Ausführung fest.

Dieses Attribut ist prädestiniert für den Einsatz von Variablen. Wenn Sie die Anzahl Wiederholungen z.B. auf $(count) setzen, können Sie den Wert für die Variable count in den Variablen der Suite (vgl. Kapitel 6) auf 1 oder 2 setzen. Das vereinfacht das Erstellen und Ausprobieren der Testsuite.

Wenn Sie den Test dann ernsthaft ausführen, z.B. automatisch mittels qftest -batch, können Sie durch Angabe von -variable count=100 auf der Kommandozeile den Wert für count nach Belieben variieren.

Variabel: Ja

Einschränkungen: >0

'Zählervariable'

Hier geben Sie den Namen einer Variablen an, die während der Ausführung die Nummer des aktuellen Durchgangs enthält, beginnend bei 0. Bei verschachtelten Schleifen sollten Sie unterschiedliche Namen für die 'Zählervariable' verwenden.

Variabel: Ja

Einschränkungen: Keine

'Variablendefinitionen'

Hier können Sie Werte für Variablen definieren, die während der Ausführung der Children der Sequenz Gültigkeit besitzen. Näheres zur Arbeit mit der Tabelle finden Sie in Abschnitt 2.2.5. Eine detaillierte Erklärung zur Definition und Verwendung von Variablen finden Sie in Kapitel 6.

Variabel: Namen der Variablen nein, Werte ja

Einschränkungen: Keine

'Maximaler Fehler'

Wenn beim Ablauf des Tests innerhalb der Sequenz eine Warnung, ein Fehler oder eine Exception auftritt, wird dieser Status im Protokoll normalerweise an die übergeordneten Knoten weitergeleitet. Mit diesem Attribut können Sie den Fehlerstatus, den das Protokoll für diese Sequenz erhält, beschränken.

Hinweis Dieser Wert beeinflusst ausschließlich den Status des Protokolls und damit den Rückgabewert von QF-Test falls es im Batchmodus läuft (vgl. Abschnitt 1.7). Auf die Behandlung von Exceptions hat er keinen Einfluss.

Auch für die Erstellung kompakter Protokolle (vgl. Kompakte Protokolle erstellen), hat dieser Wert keinen Einfluss. Eine Sequenz, in der eine Warnung oder ein Fehler auftritt, wird nicht aus einem kompakten Protokoll entfernt, selbst wenn über dieses Attribut der Fehlerstatus auf "Keinen Fehler" zurückgesetzt wird.

Variabel: Nein

Einschränkungen: Keine

'QF-Test ID'

Die 'QF-Test ID' der 'Schleife' kann in einem 'Break' Knoten angegeben werden, um bei verschachtelten Schleifen gezielt die Schleife mit dieser QF-Test ID abzubrechen.

Variabel: Nein

Einschränkungen: Darf nicht leer sein, 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

'While'

Hierbei handelt es sich um eine Sequenz die immer wieder ausgeführt wird, so lange eine Bedingung erfüllt ist.

Die Ausführung des 'While' Knotens kann mittels eines 'Break' Knotens vorzeitig abgebrochen werden.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Beliebig

Ausführung: Die Variablen der Sequenz werden gebunden. Die Bedingung wird überprüft und wenn sie erfüllt ist, werden die Childknoten einer nach dem anderen ausgeführt. Dies wiederholt sich so lange, bis die Bedingung nicht mehr erfüllt ist oder der Vorgang durch eine Exception oder einen 'Break' Knoten abgebrochen wird. Anschließend werden die Variablen der Sequenz wieder gelöscht.

Attribute:

While Attribute
Abbildung 40.26:  'While' Attribute
'Bedingung'

Eine Bedingung ist ein Ausdruck, dessen Wert entweder wahr oder falsch ist. QF-Test unterscheidet hierbei zwischen einfachen Ausdrücken, die es selbst auswertet und komplexen Ausdrücken, die es an die Skriptsprache Jython weiterreicht.

Leeren Text, sowie den Text false (unabhängig von Groß- oder Kleinschreibung) interpretiert QF-Test als falsch, den Text true als wahr. Ganze Zahlen sind genau dann wahr, wenn sie nicht 0 sind.

Durch die Auswertung komplexer Ausdrücke mittels Jython stehen hier sehr weitreichende Möglichkeiten zur Verfügung, die noch größer werden, wenn Skripting vollständig integriert ist. Für den Moment muss die folgende Kurzzusammenfassung genügen: Jython unterstützt die üblichen Operatoren ==, !=, >, >=, < und <=. Sie können Ausdrücke mit and und or verknüpfen und die Priorität durch Klammerung festlegen.

Hinweis Der Zugriff auf QF-Test Variablen in Bedingungen folgt den selben Regeln wie in Jython Skripten (vgl. Abschnitt 11.2.3). Die standard QF-Test Syntax $(...) und ${...:...} kann für numerische und boolesche Werte verwendet werden. Auf Zeichenketten sollte mittels rc.lookup(...) zugegriffen werden.

Wichtig: Wenn Sie Zeichenketten (im Gegensatz zu Zahlen) vergleichen wollen, müssen Sie diese für Jython mit einem einfachen oder doppelten Anführungszeichen schützen. Andernfalls interpretiert Jython diese als Jython-Variablen, die natürlich nicht definiert sind und damit zu einem Syntaxfehler führen.

Einige Beispiele zum besseren Verständnis:

AusdruckWert
Leerer TextFalsch
0Falsch
21Wahr
FalseFalsch
TrueWahr
abc abcSyntaxfehler
25 > 0Wahr
${qftest:batch}True if QF-Test is run in batch mode
not ${qftest:batch}True if QF-Test is run in interactive mode
rc.lookup("system", "java.version") == "1.3.1"Wahr falls JDK Version 1.3.1 ist
rc.lookup("system", "java.version")[0] == "1"Wahr falls JDK Version mit 1 beginnt
(1 > 0 and 0 == 0) or 2 < 1Wahr
Tabelle 40.13:  Beispiele für Bedingungen

Variabel: Ja

Einschränkungen: Gültige Syntax

'Skriptsprache'

Dieses Attribut legt den Interpreter fest, in dem das Skript ausgeführt wird, oder in anderen Worten die Skriptsprache. Mögliche Werte sind "Jython", "Groovy" und "JavaScript".

Variabel: Nein

Einschränkungen: Keine

'Name'

Der Name einer Sequenz ist eine Art Kurzkommentar. Er wird in der Baumdarstellung der Testsuite angegeben und sollte etwas über die Funktion der Sequenz aussagen.

Variabel: Nein

Einschränkungen: Keine

'Variablendefinitionen'

Hier können Sie Werte für Variablen definieren, die während der Ausführung der Children der Sequenz Gültigkeit besitzen. Näheres zur Arbeit mit der Tabelle finden Sie in Abschnitt 2.2.5. Eine detaillierte Erklärung zur Definition und Verwendung von Variablen finden Sie in Kapitel 6.

Variabel: Namen der Variablen nein, Werte ja

Einschränkungen: Keine

'Maximaler Fehler'

Wenn beim Ablauf des Tests innerhalb der Sequenz eine Warnung, ein Fehler oder eine Exception auftritt, wird dieser Status im Protokoll normalerweise an die übergeordneten Knoten weitergeleitet. Mit diesem Attribut können Sie den Fehlerstatus, den das Protokoll für diese Sequenz erhält, beschränken.

Hinweis Dieser Wert beeinflusst ausschließlich den Status des Protokolls und damit den Rückgabewert von QF-Test falls es im Batchmodus läuft (vgl. Abschnitt 1.7). Auf die Behandlung von Exceptions hat er keinen Einfluss.

Auch für die Erstellung kompakter Protokolle (vgl. Kompakte Protokolle erstellen), hat dieser Wert keinen Einfluss. Eine Sequenz, in der eine Warnung oder ein Fehler auftritt, wird nicht aus einem kompakten Protokoll entfernt, selbst wenn über dieses Attribut der Fehlerstatus auf "Keinen Fehler" zurückgesetzt wird.

Variabel: Nein

Einschränkungen: Keine

'QF-Test ID'

Die 'QF-Test ID' des 'While' Knotens kann in einem 'Break' Knoten angegeben werden, um bei verschachtelten Schleifen gezielt die Schleife mit dieser QF-Test ID abzubrechen.

Variabel: Nein

Einschränkungen: Darf nicht leer sein, 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

'Break'

Dieser Knoten dient dazu, 'Schleifen' und 'While' Knoten vorzeitig zu beenden.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Keine

Ausführung: Es wird eine BreakException geworfen. Wird diese von einer passenden Schleife gefangen, so wird die Schleife beendet. Andernfalls führt sie zu einem Fehler.

Attribute:

Break Attribute
Abbildung 40.27:  'Break' Attribute
'QF-Test ID der Schleife'

Hiermit können Sie bei verschachtelten Schleifen gezielt die Schleife auswählen, die abgebrochen werden soll, indem Sie im 'Schleife' Knoten das 'QF-Test ID' setzen und hier referenzieren. Das gleiche gilt für 'While' Knoten mit dem 'QF-Test ID' Attribut. Ist dieses Feld leer, wird die innerste Schleife abgebrochen. Falls Sie eine Schleife des 'Datentreiber' Knotens abbrechen wollen, so geben Sie hier den Wert des Attributs 'Name' des jeweiligen 'Datentreibers' an.

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

'If'

Analog zu Java werden die Childknoten dieser Sequenz nur dann ausgeführt, wenn eine Bedingung erfüllt ist. Allerdings unterscheidet sich QF-Test von gängigen Programmiersprachen in der Art in der die Alternativzweige angeordnet sind.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Beliebige Knoten, gefolgt von beliebig vielen 'Elseif' Knoten mit einem optionalen 'Else' Knoten am Ende.

Ausführung: Die Variablen der Sequenz werden gebunden. Die Bedingung wird überprüft und wenn sie erfüllt ist, werden die normalen Childknoten einer nach dem anderen ausgeführt. Ist die Bedingung nicht erfüllt, werden die Bedingungen der 'Elseif' Childknoten eine nach der anderen geprüft, bis eine Bedingung erfüllt ist und der entsprechende 'Elseif' Knoten ausgeführt wird. Ist kein 'Elseif' Childknoten vorhanden oder keine der Bedingungen erfüllt, wird der 'Else' Knoten ausgeführt, sofern vorhanden. Anschließend werden die Variablen der Sequenz wieder gelöscht.

Attribute:

If Attribute
Abbildung 40.28:  'If' Attribute
'Bedingung'

Eine Bedingung ist ein Ausdruck, dessen Wert entweder wahr oder falsch ist. QF-Test unterscheidet hierbei zwischen einfachen Ausdrücken, die es selbst auswertet und komplexen Ausdrücken, die es an die Skriptsprache Jython weiterreicht.

Leeren Text, sowie den Text false (unabhängig von Groß- oder Kleinschreibung) interpretiert QF-Test als falsch, den Text true als wahr. Ganze Zahlen sind genau dann wahr, wenn sie nicht 0 sind.

Durch die Auswertung komplexer Ausdrücke mittels Jython stehen hier sehr weitreichende Möglichkeiten zur Verfügung, die noch größer werden, wenn Skripting vollständig integriert ist. Für den Moment muss die folgende Kurzzusammenfassung genügen: Jython unterstützt die üblichen Operatoren ==, !=, >, >=, < und <=. Sie können Ausdrücke mit and und or verknüpfen und die Priorität durch Klammerung festlegen.

Hinweis Der Zugriff auf QF-Test Variablen in Bedingungen folgt den selben Regeln wie in Jython Skripten (vgl. Abschnitt 11.2.3). Die standard QF-Test Syntax $(...) und ${...:...} kann für numerische und boolesche Werte verwendet werden. Auf Zeichenketten sollte mittels rc.lookup(...) zugegriffen werden.

Wichtig: Wenn Sie Zeichenketten (im Gegensatz zu Zahlen) vergleichen wollen, müssen Sie diese für Jython mit einem einfachen oder doppelten Anführungszeichen schützen. Andernfalls interpretiert Jython diese als Jython-Variablen, die natürlich nicht definiert sind und damit zu einem Syntaxfehler führen.

Einige Beispiele zum besseren Verständnis:

AusdruckWert
Leerer TextFalsch
0Falsch
21Wahr
FalseFalsch
TrueWahr
abc abcSyntaxfehler
25 > 0Wahr
${qftest:batch}True if QF-Test is run in batch mode
not ${qftest:batch}True if QF-Test is run in interactive mode
rc.lookup("system", "java.version") == "1.3.1"Wahr falls JDK Version 1.3.1 ist
rc.lookup("system", "java.version")[0] == "1"Wahr falls JDK Version mit 1 beginnt
(1 > 0 and 0 == 0) or 2 < 1Wahr
Tabelle 40.14:  Beispiele für Bedingungen

Variabel: Ja

Einschränkungen: Gültige Syntax

'Skriptsprache'

Dieses Attribut legt den Interpreter fest, in dem das Skript ausgeführt wird, oder in anderen Worten die Skriptsprache. Mögliche Werte sind "Jython", "Groovy" und "JavaScript".

Variabel: Nein

Einschränkungen: Keine

'Name'

Der Name einer Sequenz ist eine Art Kurzkommentar. Er wird in der Baumdarstellung der Testsuite angegeben und sollte etwas über die Funktion der Sequenz aussagen.

Variabel: Nein

Einschränkungen: Keine

'Variablendefinitionen'

Hier können Sie Werte für Variablen definieren, die während der Ausführung der Children der Sequenz Gültigkeit besitzen. Näheres zur Arbeit mit der Tabelle finden Sie in Abschnitt 2.2.5. Eine detaillierte Erklärung zur Definition und Verwendung von Variablen finden Sie in Kapitel 6.

Variabel: Namen der Variablen nein, Werte ja

Einschränkungen: Keine

'Maximaler Fehler'

Wenn beim Ablauf des Tests innerhalb der Sequenz eine Warnung, ein Fehler oder eine Exception auftritt, wird dieser Status im Protokoll normalerweise an die übergeordneten Knoten weitergeleitet. Mit diesem Attribut können Sie den Fehlerstatus, den das Protokoll für diese Sequenz erhält, beschränken.

Hinweis Dieser Wert beeinflusst ausschließlich den Status des Protokolls und damit den Rückgabewert von QF-Test falls es im Batchmodus läuft (vgl. Abschnitt 1.7). Auf die Behandlung von Exceptions hat er keinen Einfluss.

Auch für die Erstellung kompakter Protokolle (vgl. Kompakte Protokolle erstellen), hat dieser Wert keinen Einfluss. Eine Sequenz, in der eine Warnung oder ein Fehler auftritt, wird nicht aus einem kompakten Protokoll entfernt, selbst wenn über dieses Attribut der Fehlerstatus auf "Keinen Fehler" zurückgesetzt wird.

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

'Elseif'

Dieser Knoten stellt einen Alternativzweig in einem 'If' Knoten dar. Ist die Bedingung des 'If' Knotens nicht erfüllt, wird der erste 'Elseif' Knoten ausgeführt, dessen Bedingung erfüllt ist.

Enthalten in:'If'

Kinder: Beliebig

Ausführung: Die Variablen der Sequenz werden gebunden und die Childknoten einer nach dem anderen ausgeführt. Anschließend werden die Variablen der Sequenz wieder gelöscht.

Attribute:

ElseIf Attribute
Abbildung 40.29:  'Elseif' Attribute
'Bedingung'

Eine Bedingung ist ein Ausdruck, dessen Wert entweder wahr oder falsch ist. QF-Test unterscheidet hierbei zwischen einfachen Ausdrücken, die es selbst auswertet und komplexen Ausdrücken, die es an die Skriptsprache Jython weiterreicht.

Leeren Text, sowie den Text false (unabhängig von Groß- oder Kleinschreibung) interpretiert QF-Test als falsch, den Text true als wahr. Ganze Zahlen sind genau dann wahr, wenn sie nicht 0 sind.

Durch die Auswertung komplexer Ausdrücke mittels Jython stehen hier sehr weitreichende Möglichkeiten zur Verfügung, die noch größer werden, wenn Skripting vollständig integriert ist. Für den Moment muss die folgende Kurzzusammenfassung genügen: Jython unterstützt die üblichen Operatoren ==, !=, >, >=, < und <=. Sie können Ausdrücke mit and und or verknüpfen und die Priorität durch Klammerung festlegen.

Hinweis Der Zugriff auf QF-Test Variablen in Bedingungen folgt den selben Regeln wie in Jython Skripten (vgl. Abschnitt 11.2.3). Die standard QF-Test Syntax $(...) und ${...:...} kann für numerische und boolesche Werte verwendet werden. Auf Zeichenketten sollte mittels rc.lookup(...) zugegriffen werden.

Wichtig: Wenn Sie Zeichenketten (im Gegensatz zu Zahlen) vergleichen wollen, müssen Sie diese für Jython mit einem einfachen oder doppelten Anführungszeichen schützen. Andernfalls interpretiert Jython diese als Jython-Variablen, die natürlich nicht definiert sind und damit zu einem Syntaxfehler führen.

Einige Beispiele zum besseren Verständnis:

AusdruckWert
Leerer TextFalsch
0Falsch
21Wahr
FalseFalsch
TrueWahr
abc abcSyntaxfehler
25 > 0Wahr
${qftest:batch}True if QF-Test is run in batch mode
not ${qftest:batch}True if QF-Test is run in interactive mode
rc.lookup("system", "java.version") == "1.3.1"Wahr falls JDK Version 1.3.1 ist
rc.lookup("system", "java.version")[0] == "1"Wahr falls JDK Version mit 1 beginnt
(1 > 0 and 0 == 0) or 2 < 1Wahr
Tabelle 40.15:  Beispiele für Bedingungen

Variabel: Ja

Einschränkungen: Gültige Syntax

'Skriptsprache'

Dieses Attribut legt den Interpreter fest, in dem das Skript ausgeführt wird, oder in anderen Worten die Skriptsprache. Mögliche Werte sind "Jython", "Groovy" und "JavaScript".

Variabel: Nein

Einschränkungen: Keine

'Name'

Der Name einer Sequenz ist eine Art Kurzkommentar. Er wird in der Baumdarstellung der Testsuite angegeben und sollte etwas über die Funktion der Sequenz aussagen.

Variabel: Nein

Einschränkungen: Keine

'Variablendefinitionen'

Hier können Sie Werte für Variablen definieren, die während der Ausführung der Children der Sequenz Gültigkeit besitzen. Näheres zur Arbeit mit der Tabelle finden Sie in Abschnitt 2.2.5. Eine detaillierte Erklärung zur Definition und Verwendung von Variablen finden Sie in Kapitel 6.

Variabel: Namen der Variablen nein, Werte ja

Einschränkungen: Keine

'Maximaler Fehler'

Wenn beim Ablauf des Tests innerhalb der Sequenz eine Warnung, ein Fehler oder eine Exception auftritt, wird dieser Status im Protokoll normalerweise an die übergeordneten Knoten weitergeleitet. Mit diesem Attribut können Sie den Fehlerstatus, den das Protokoll für diese Sequenz erhält, beschränken.

Hinweis Dieser Wert beeinflusst ausschließlich den Status des Protokolls und damit den Rückgabewert von QF-Test falls es im Batchmodus läuft (vgl. Abschnitt 1.7). Auf die Behandlung von Exceptions hat er keinen Einfluss.

Auch für die Erstellung kompakter Protokolle (vgl. Kompakte Protokolle erstellen), hat dieser Wert keinen Einfluss. Eine Sequenz, in der eine Warnung oder ein Fehler auftritt, wird nicht aus einem kompakten Protokoll entfernt, selbst wenn über dieses Attribut der Fehlerstatus auf "Keinen Fehler" zurückgesetzt wird.

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

'Else'

Ein 'Else' Knoten wird ausgeführt, wenn weder die Bedingung seines 'If' Parents, noch die Bedingungen der 'Elseif' Knoten erfüllt sind.

Enthalten in:'If', 'Schleife', 'Try'

Kinder: Beliebig

Ausführung: Die Variablen der Sequenz werden gebunden und die Childknoten einer nach dem anderen ausgeführt. Anschließend werden die Variablen der Sequenz wieder gelöscht.

Attribute:

Else Attribute
Abbildung 40.30:  'Else' Attribute
'Name'

Der Name einer Sequenz ist eine Art Kurzkommentar. Er wird in der Baumdarstellung der Testsuite angegeben und sollte etwas über die Funktion der Sequenz aussagen.

Variabel: Nein

Einschränkungen: Keine

'Variablendefinitionen'

Hier können Sie Werte für Variablen definieren, die während der Ausführung der Children der Sequenz Gültigkeit besitzen. Näheres zur Arbeit mit der Tabelle finden Sie in Abschnitt 2.2.5. Eine detaillierte Erklärung zur Definition und Verwendung von Variablen finden Sie in Kapitel 6.

Variabel: Namen der Variablen nein, Werte ja

Einschränkungen: Keine

'Maximaler Fehler'

Wenn beim Ablauf des Tests innerhalb der Sequenz eine Warnung, ein Fehler oder eine Exception auftritt, wird dieser Status im Protokoll normalerweise an die übergeordneten Knoten weitergeleitet. Mit diesem Attribut können Sie den Fehlerstatus, den das Protokoll für diese Sequenz erhält, beschränken.

Hinweis Dieser Wert beeinflusst ausschließlich den Status des Protokolls und damit den Rückgabewert von QF-Test falls es im Batchmodus läuft (vgl. Abschnitt 1.7). Auf die Behandlung von Exceptions hat er keinen Einfluss.

Auch für die Erstellung kompakter Protokolle (vgl. Kompakte Protokolle erstellen), hat dieser Wert keinen Einfluss. Eine Sequenz, in der eine Warnung oder ein Fehler auftritt, wird nicht aus einem kompakten Protokoll entfernt, selbst wenn über dieses Attribut der Fehlerstatus auf "Keinen Fehler" zurückgesetzt wird.

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

'Try'

Ein Try ist eine besondere Sequenz, deren Semantik dem Java-Konstrukt try-catch-finally entspricht. Dieses Konstrukt wurde, wie bei Python, erweitert, sodass optionale else Blöcke im Try möglich sind. Sie verhält sich wie eine normale 'Sequenz', die zusätzlich über die Möglichkeit verfügt, Fehler zu erkennen und abzufangen. Dies kann z.B. verhindern, dass der Ablauf einer ganzen Testsuite nur wegen einem relativ unbedeutenden Fehler abgebrochen wird. Außerdem kann es wichtig sein, einzelne Aufräumarbeiten auch im Fehlerfall durchzuführen.

Um einen Fehler, d.h. eine Exception, abzufangen, können nach den normalen Children des Try ein oder mehrere 'Catch' Knoten eingefügt werden. Diese speziellen Sequenzen werden nur ausgeführt, wenn die Exception zu ihrem 'Exception-Klasse' Attribut passt. Es wird immer höchstens ein Catch ausgeführt, und zwar der erste, der auf die Exception passt.

Ein möglicher 'Else' Knoten am Ende wird genau dann ausgeführt, wenn kein 'Catch' Knoten ausgeführt wurde. Das heißt, wenn kein Fehler im Try Block aufgetreten ist.

Ganz am Ende des Try darf außerdem ein 'Finally' Knoten stehen. Dabei handelt es sich um eine Sequenz, die in jedem Fall abgearbeitet wird, unabhängig davon, ob eine Exception auftritt und unabhängig davon, ob Sie von einem Catch behandelt wird.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Beliebige Knoten, gefolgt von beliebig vielen 'Catch' Knoten mit einem optionalen 'Else' Knoten und/oder 'Finally' Knoten am Ende.

Ausführung: Die Variablen der Sequenz werden gebunden und die Childknoten einer nach dem anderen ausgeführt. Wird dabei eine Exception ausgelöst, wird deren Ausführung beendet und unter den Catch Knoten der Sequenz die erste ermittelt, die diese Exception abfängt. Ist ein solcher Catch Knoten vorhanden, wird er ausgeführt. Die Exception ist damit "entschärft", der Test wird nach dem Try normal fortgesetzt. Ist kein passender Catch vorhanden, wird die Exception nach oben weitergereicht. Ist ein Finally Knoten vorhanden, wird er in jedem Fall als letztes ausgeführt, auch wenn keine Exception auftritt oder eine Exception nicht behandelt wurde. Zuletzt werden die Variablen der Sequenz wieder gelöscht. Tritt eine Exception während der Ausführung eines Catch auf, so wird der Try - nach Ausführung des Finally - mit dieser neuen Exception beendet. Eine Exception innerhalb des Finally Knotens beendet diesen und den Try sofort.

Attribute:

Try Attribute
Abbildung 40.31:  'Try' Attribute
'Name'

Der Name einer Sequenz ist eine Art Kurzkommentar. Er wird in der Baumdarstellung der Testsuite angegeben und sollte etwas über die Funktion der Sequenz aussagen.

Variabel: Nein

Einschränkungen: Keine

'Variablendefinitionen'

Hier können Sie Werte für Variablen definieren, die während der Ausführung der Children der Sequenz Gültigkeit besitzen. Näheres zur Arbeit mit der Tabelle finden Sie in Abschnitt 2.2.5. Eine detaillierte Erklärung zur Definition und Verwendung von Variablen finden Sie in Kapitel 6.

Variabel: Namen der Variablen nein, Werte ja

Einschränkungen: Keine

'Maximaler Fehler'

Wenn beim Ablauf des Tests innerhalb der Sequenz eine Warnung, ein Fehler oder eine Exception auftritt, wird dieser Status im Protokoll normalerweise an die übergeordneten Knoten weitergeleitet. Mit diesem Attribut können Sie den Fehlerstatus, den das Protokoll für diese Sequenz erhält, beschränken.

Hinweis Dieser Wert beeinflusst ausschließlich den Status des Protokolls und damit den Rückgabewert von QF-Test falls es im Batchmodus läuft (vgl. Abschnitt 1.7). Auf die Behandlung von Exceptions hat er keinen Einfluss.

Auch für die Erstellung kompakter Protokolle (vgl. Kompakte Protokolle erstellen), hat dieser Wert keinen Einfluss. Eine Sequenz, in der eine Warnung oder ein Fehler auftritt, wird nicht aus einem kompakten Protokoll entfernt, selbst wenn über dieses Attribut der Fehlerstatus auf "Keinen Fehler" zurückgesetzt wird.

Bei einem 'Try' Knoten wird der Status des Protokolls zusätzlich durch den 'Maximalen Fehler' des 'Catch' Knotens beschränkt, der eine Exception abfängt.

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

'Catch'

Ein 'Catch' Knoten ist eine spezielle 'Sequenz' und kann nur innerhalb eines 'Try' oder eines 'Abhängigkeit' Knotens stehen. Er dient dazu, Exceptions abzufangen, die während der Ausführung eines 'Try' Knotens oder eines 'Testfall' Knotens mit einer 'Abhängigkeit' auftreten können.

Ein 'Catch' Knoten kann eine Exception fangen, wenn die Klasse der auftretenden Exception entweder die im 'Exception-Klasse' Attribut des 'Catch' definierten Klasse, oder eine ihrer Basisklassen ist. Das entspricht dem Verhalten in Java.

Enthalten in:'Try', 'Abhängigkeit'

Kinder: Beliebig

Ausführung: Die 'Variablendefinitionen' der 'Catch' Sequenz werden gebunden und die Childknoten einer nach dem anderen ausgeführt. Anschließend werden die Variablen der Sequenz wieder gelöscht.

Attribute:

Catch Attribute
Abbildung 40.32:  'Catch' Attribute
'Exception-Klasse'

In dieser ComboBox wählen Sie die Klasse der Exception aus, die von diesem Knoten abgefangen werden soll. Alle Exceptions in QF-Test sind von der Klasse TestException abgeleitet. Eine Aufstellung aller möglichen Exceptions finden Sie in Kapitel 41.

Variabel: Nein

Einschränkungen: Keine

'Erwartete Meldung'

Sie können die zu fangende Exception genauer eingrenzen, indem Sie hier die zu erwartende Meldung festlegen. Ist dieses Attribut leer, werden alle Exceptions der angegebenen Klasse gefangen. Andernfalls wird es mit dem Rückgabewert von exception.getMessage() verglichen und die Exception nur bei Übereinstimmung gefangen.

Variabel: Ja

Einschränkungen: Gültige Regexp, falls 'Als Regexp' gesetzt ist.

'Als Regexp'

Ist dieses Attribut gesetzt, findet der Vergleich mit der Meldung der Exception mittels eines regulären Ausdrucks statt (vgl. Abschnitt 47.3), andernfalls als 1:1 Textvergleich.

Variabel: Ja

Einschränkungen: Keine

'Mit lokalisierter Meldung vergleichen'

Die meisten Exceptions haben zwei Arten von Fehlermeldung: Die Rohmeldung ist typischerweise ein kurzer, englischer Text, während die lokalisierte Meldung mehr Details enthält, allerdings auch abhängig von den QF-Test Spracheinstellungen entweder in Deutsch oder Englisch gehalten ist. Ist dieses Attribut gesetzt, wird mit der lokalisierten Meldung verglichen, andernfalls mit der Rohmeldung. Letzteres ist üblicherweise vorzuziehen, da man sich nicht von der Spracheinstellung abhängig macht bzw. beide Varianten per regulärem Ausdruck abdecken muss.

Variabel: Ja

Einschränkungen: Keine

'Name'

Der Name einer Sequenz ist eine Art Kurzkommentar. Er wird in der Baumdarstellung der Testsuite angegeben und sollte etwas über die Funktion der Sequenz aussagen.

Variabel: Nein

Einschränkungen: Keine

'Variablendefinitionen'

Hier können Sie Werte für Variablen definieren, die während der Ausführung der Children der Sequenz Gültigkeit besitzen. Näheres zur Arbeit mit der Tabelle finden Sie in Abschnitt 2.2.5. Eine detaillierte Erklärung zur Definition und Verwendung von Variablen finden Sie in Kapitel 6.

Variabel: Namen der Variablen nein, Werte ja

Einschränkungen: Keine

'Maximaler Fehler'

Im Gegensatz zu dem 'Maximalen Fehler' der anderen Sequenzen, bestimmt dieses Attribut nicht, welchen Fehlerstatus das Protokoll für den 'Catch' Knoten selbst weitergibt, sondern legt den maximalen Fehler für seinen 'Try' Parentknoten fest, sofern dieser 'Catch' Knoten zur Behandlung einer Exception ausgeführt wird.

Fehler die innerhalb dieses 'Catch' Knotens auftreten, werden mit unverändertem Status weitergegeben, damit Probleme, die während der Behandlung einer Exception auftreten, nicht übersehen 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

'Finally'

Ein besondere Bedeutung kommt dem Finally am Ende eines 'Try' Knotens zu, da es in jedem Fall ausgeführt wird. Damit kann sichergestellt werden, dass Aufräumarbeiten, wie z.B. das Löschen einer temporären Datei oder das Schließen eines Fensters, tatsächlich durchgeführt werden.

Enthalten in:'Try'

Kinder: Beliebig

Ausführung: Die Variablen der Sequenz werden gebunden und die Childknoten einer nach dem anderen ausgeführt. Anschließend werden die Variablen der Sequenz wieder gelöscht.

Attribute:

Finally Attribute
Abbildung 40.33:  'Finally' Attribute
'Name'

Der Name einer Sequenz ist eine Art Kurzkommentar. Er wird in der Baumdarstellung der Testsuite angegeben und sollte etwas über die Funktion der Sequenz aussagen.

Variabel: Nein

Einschränkungen: Keine

'Variablendefinitionen'

Hier können Sie Werte für Variablen definieren, die während der Ausführung der Children der Sequenz Gültigkeit besitzen. Näheres zur Arbeit mit der Tabelle finden Sie in Abschnitt 2.2.5. Eine detaillierte Erklärung zur Definition und Verwendung von Variablen finden Sie in Kapitel 6.

Variabel: Namen der Variablen nein, Werte ja

Einschränkungen: Keine

'Maximaler Fehler'

Wenn beim Ablauf des Tests innerhalb der Sequenz eine Warnung, ein Fehler oder eine Exception auftritt, wird dieser Status im Protokoll normalerweise an die übergeordneten Knoten weitergeleitet. Mit diesem Attribut können Sie den Fehlerstatus, den das Protokoll für diese Sequenz erhält, beschränken.

Hinweis Dieser Wert beeinflusst ausschließlich den Status des Protokolls und damit den Rückgabewert von QF-Test falls es im Batchmodus läuft (vgl. Abschnitt 1.7). Auf die Behandlung von Exceptions hat er keinen Einfluss.

Auch für die Erstellung kompakter Protokolle (vgl. Kompakte Protokolle erstellen), hat dieser Wert keinen Einfluss. Eine Sequenz, in der eine Warnung oder ein Fehler auftritt, wird nicht aus einem kompakten Protokoll entfernt, selbst wenn über dieses Attribut der Fehlerstatus auf "Keinen Fehler" zurückgesetzt wird.

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

'Throw'

Dieser Knoten dient dazu, explizit eine Exception zu werfen, um auf eine besondere Ausnahmesituation zu reagieren.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Keine

Ausführung: Eine UserException mit der Fehlermeldung aus dem Attribut 'Meldung für die Exception' wird ausgelöst.

Attribute:

Throw Attribute
Abbildung 40.34:  'Throw' Attribute
'Meldung für die Exception'

Hier können Sie eine beliebige Fehlermeldung für die zu werfende UserException angeben.

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

'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

'Rethrow'

Eine Exception, die von einem 'Catch' Knoten abgefangen wurde, kann mit Hilfe dieses Knotens erneut geworfen werden. Dies ist besonders in Situationen nützlich, wo alle Exceptions außer einer bestimmten abgefangen werden sollen. Dies erreichen Sie, indem Sie unterhalb eines 'Try' Knotens zunächst einen 'Catch' für die spezielle Exception anlegen, gefolgt von einem 'Catch' für eine TestException. In den ersten 'Catch' fügen Sie dann einen 'Rethrow' Knoten ein.

Enthalten in: Alle Arten von Sequenzen. Der 'Rethrow' Knoten muss sich nicht direkt unterhalb des entsprechenden 'Catch' Knotens befinden. Er kann z.B. auch in einer 'Prozedur' untergebracht werden, die zur Behandlung der Exception aufgerufen wird.

Kinder: Keine

Ausführung: Die letzte Exception, die von einem 'Catch' Knoten abgefangen wurde, wird erneut geworfen. Gibt es keine solche Exception, wird eine CannotRethrowException ausgelöst.

Attribute:

Rethrow Attribute
Abbildung 40.35:  'Rethrow' Attribute
'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

'Server-Skript'

Server-seitige Skripte werden von einem in QF-Test eingebetteten Interpreter (Jython, Groovy oder JavaScript) ausgeführt. Skripte werden ausführlich in Kapitel 11 und Kapitel 48 erläutert. Nachdem server-seitige Skripte im QF-Test Interpreter laufen, können diese nicht auf das SUT zugreifen. Sie sollten diese Skripte für Aktionen ohne SUT bzw. zeitintensive Aktionen verwenden, wie Zugriffen auf eine Datenbank oder Dateioperationen.

Enthalten in: Alle Arten von von Sequenzen.

Kinder: Keine

Ausführung: Das Skript wird von einem Interpreter ausgeführt.

Attribute:

Server-Skript Attribute
Abbildung 40.36:  'Server-Skript' Attribute
'Skript'

Das Skript, das ausgeführt werden soll.

Hinweis In Jython-Skripten können QF-Test Variablen der Form $(var) oder ${Gruppe:Name} verwendet werden. Diese werden expandiert bevor das Skript an den Interpreter übergeben wird. Dies kann zu unerwünschten Effekten führen. Stattdessen sollte dafür die Methode rc.lookup(...) verwendet werden, die in allen Skriptsprachen zur Verfügung steht (vgl. Abschnitt 11.2.3.1).

Hinweis Trotz Syntax-Highlighting und automatischer Einrückung ist dieses Textfeld womöglich nicht der geeignete Ort, um komplexe Skripte zu schreiben. 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 das Skript komfortabel bearbeitet werden kann. Außerdem können komplexe Skripte in separate Module ausgelagert werden, die dann in QF-Test Skripte importiert werden. (vgl. Kapitel 48).

Variabel: Ja

Einschränkungen: Gültige Syntax

'Vorlagen'

Dieses Dropdown-Menü enthält eine Liste nützlicher Vorlagenskripte. Die verfügbaren Vorlagen unterscheiden sich je nach gewähltem Skripttyp und Skriptsprache.

Wenn Sie eine dieser Vorlagen auswählen, wird der aktuelle Inhalt Ihres Skripts ersetzt.

Sie können Ihre eigenen Vorlagen zu diesem Menü hinzufügen, indem Sie "Benutzervorlagen-Verzeichnis öffnen" wählen und Ihre Vorlagendateien dort ablegen. Die folgenden Dateitypen sind gültig:

  • [Verzeichnis]: Wird als Untermenü angezeigt.
  • .py: Eine Jython-Vorlage.
  • .groovy: Eine Groovy-Vorlage.
  • .js: Eine JavaScript-Vorlage.

'Skriptsprache'

Dieses Attribut legt den Interpreter fest, in dem das Skript ausgeführt wird, oder in anderen Worten die Skriptsprache. Mögliche Werte sind "Jython", "Groovy" und "JavaScript".

Variabel: Nein

Einschränkungen: Keine

'Name'

Der Name eines Skripts ist eine Art Kurzkommentar. Er wird in der Baumdarstellung der Testsuite angegeben und sollte etwas über die Funktion des Skripts aussagen.

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

'SUT-Skript'

Client-seitige Skripte werden von einem Interpreter (Jython, Groovy oder JavaScript) ausgeführt, den QF-Test in das SUT einbettet. Skripte werden ausführlich in Kapitel 11 und Kapitel 48 erläutert. Nachdem client-seitige Skripte innerhalb des SUTs laufen, können diese auf die Komponenten zugreifen.

Enthalten in: Alle Arten von von Sequenzen.

Kinder: Keine

Ausführung: Das Skript wird von einem Interpreter im SUT ausgeführt.

Attribute:

SUT-Skript Attribute
Abbildung 40.37:  'SUT-Skript' Attribute
'Client'

Der Name unter dem der Java-Prozess des SUT gestartet wurde, in dem das Skript ausgeführt werden soll.

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

'Skript'

Das Skript, das ausgeführt werden soll.

Hinweis In Jython-Skripten können QF-Test Variablen der Form $(var) oder ${Gruppe:Name} verwendet werden. Diese werden expandiert bevor das Skript an den Interpreter übergeben wird. Dies kann zu unerwünschten Effekten führen. Stattdessen sollte dafür die Methode rc.lookup(...) verwendet werden, die in allen Skriptsprachen zur Verfügung steht (vgl. Abschnitt 11.2.3.1).

Hinweis Trotz Syntax-Highlighting und automatischer Einrückung ist dieses Textfeld womöglich nicht der geeignete Ort, um komplexe Skripte zu schreiben. 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 das Skript komfortabel bearbeitet werden kann. Außerdem können komplexe Skripte in separate Module ausgelagert werden, die dann in QF-Test Skripte importiert werden. (vgl. Kapitel 48).

Variabel: Ja

Einschränkungen: Gültige Syntax

'Vorlagen'

Dieses Dropdown-Menü enthält eine Liste nützlicher Vorlagenskripte. Die verfügbaren Vorlagen unterscheiden sich je nach gewähltem Skripttyp und Skriptsprache.

Wenn Sie eine dieser Vorlagen auswählen, wird der aktuelle Inhalt Ihres Skripts ersetzt.

Sie können Ihre eigenen Vorlagen zu diesem Menü hinzufügen, indem Sie "Benutzervorlagen-Verzeichnis öffnen" wählen und Ihre Vorlagendateien dort ablegen. Die folgenden Dateitypen sind gültig:

  • [Verzeichnis]: Wird als Untermenü angezeigt.
  • .py: Eine Jython-Vorlage.
  • .groovy: Eine Groovy-Vorlage.
  • .js: Eine JavaScript-Vorlage.

'Skriptsprache'

Dieses Attribut legt den Interpreter fest, in dem das Skript ausgeführt wird, oder in anderen Worten die Skriptsprache. Mögliche Werte sind "Jython", "Groovy" und "JavaScript".

Variabel: Nein

Einschränkungen: Keine

'GUI-Engine'

Die GUI-Engine in der das Skript ausgeführt werden soll. Nur relevant für SUTs mit mehr als einer GUI-Engine wie in Kapitel 43 beschrieben.

Variabel: Ja

Einschränkungen: Siehe Kapitel 43

'Name'

Der Name eines Skripts ist eine Art Kurzkommentar. Er wird in der Baumdarstellung der Testsuite angegeben und sollte etwas über die Funktion des Skripts aussagen.

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