42.6
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 43 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.

42.6.1
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 42.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

42.6.2
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 42.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 denselben Regeln wie in Jython-Skripten (vgl. Abschnitt 11.3.3). Die standard QF-Test Syntax $(...) und ${...:...} kann für numerische und boolesche Werte verwendet werden. Auf Zeichenketten sollte mittels rc.getStr 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:

Ausdruck Wert
Leerer Text Falsch
0 Falsch
21 Wahr
False Falsch
True Wahr
abc abc Syntaxfehler
25 > 0 Wahr
${qftest:batch} True if QF-Test is run in batch mode
not ${qftest:batch} True if QF-Test is run in interactive mode
rc.getStr("system", "java.version") == "1.3.1" Wahr falls JDK Version 1.3.1 ist
rc.getStr("system", "java.version")[0] == "1" Wahr falls JDK Version mit 1 beginnt
(1 > 0 and 0 == 0) or 2 < 1 Wahr
Tabelle 42.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

42.6.3
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 42.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

42.6.4
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 42.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 denselben Regeln wie in Jython-Skripten (vgl. Abschnitt 11.3.3). Die standard QF-Test Syntax $(...) und ${...:...} kann für numerische und boolesche Werte verwendet werden. Auf Zeichenketten sollte mittels rc.getStr 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:

Ausdruck Wert
Leerer Text Falsch
0 Falsch
21 Wahr
False Falsch
True Wahr
abc abc Syntaxfehler
25 > 0 Wahr
${qftest:batch} True if QF-Test is run in batch mode
not ${qftest:batch} True if QF-Test is run in interactive mode
rc.getStr("system", "java.version") == "1.3.1" Wahr falls JDK Version 1.3.1 ist
rc.getStr("system", "java.version")[0] == "1" Wahr falls JDK Version mit 1 beginnt
(1 > 0 and 0 == 0) or 2 < 1 Wahr
Tabelle 42.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

42.6.5
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 42.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 denselben Regeln wie in Jython-Skripten (vgl. Abschnitt 11.3.3). Die standard QF-Test Syntax $(...) und ${...:...} kann für numerische und boolesche Werte verwendet werden. Auf Zeichenketten sollte mittels rc.getStr 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:

Ausdruck Wert
Leerer Text Falsch
0 Falsch
21 Wahr
False Falsch
True Wahr
abc abc Syntaxfehler
25 > 0 Wahr
${qftest:batch} True if QF-Test is run in batch mode
not ${qftest:batch} True if QF-Test is run in interactive mode
rc.getStr("system", "java.version") == "1.3.1" Wahr falls JDK Version 1.3.1 ist
rc.getStr("system", "java.version")[0] == "1" Wahr falls JDK Version mit 1 beginnt
(1 > 0 and 0 == 0) or 2 < 1 Wahr
Tabelle 42.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

42.6.6
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 42.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

42.6.7
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 42.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

42.6.8
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 42.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 43.

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

42.6.9
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 42.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

42.6.10
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 42.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

42.6.11
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 42.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

42.6.12
Server-Skript

Serverseitige Skripte werden von einem in QF-Test eingebetteten Interpreter (Jython, Groovy oder JavaScript) ausgeführt. Skripte werden ausführlich in Kapitel 11 und Kapitel 50 erläutert. Nachdem serverseitige 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 42.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.getStr verwendet werden, die in allen Skriptsprachen zur Verfügung steht (vgl. Abschnitt 11.3.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 50).

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

42.6.13
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 50 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 42.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.getStr verwendet werden, die in allen Skriptsprachen zur Verfügung steht (vgl. Abschnitt 11.3.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 50).

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 45 beschrieben.

Variabel: Ja

Einschränkungen: Siehe Kapitel 45

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