42.5
Prozeduren

Bei automatischen GUI Tests müssen immer wieder ähnliche Abläufe mit kleinen Variationen ausgeführt werden. Um die Komplexität einer Testsuite zu reduzieren und besser auf Änderungen reagieren zu können, ist es sinnvoll, wiederverwendbare Teile in Prozeduren auszulagern.

Eine Prozedur können Sie von jedem anderen Punkt der Testsuite und sogar aus anderen Testsuiten heraus aufrufen (vgl. Abschnitt 26.1). Dabei können Sie Parameter in Form von Variablendefinitionen übergeben (vgl. Kapitel 6).

42.5.1
Prozedur

Eine Prozedur ist eine Sequenz, die mittels eines Prozeduraufrufs von einer beliebigen anderen Stelle aus aufgerufen werden kann.

In einer Prozedur lassen sich häufig wiederkehrende Bestandteile einer Testsuite kapseln und über die Argumente des Prozeduraufrufs in Grenzen variieren. Dadurch müssen diese Teile nur an einer Stelle gepflegt und an mögliche Änderungen des SUT angepasst werden.

Die Parameter, die die Prozedur erwartet, werden nicht explizit angegeben, sondern ergeben sich durch die Variablenreferenzen der Kinder der Prozedur. Um den Überblick zu behalten, sollten Sie es sich zur Gewohnheit machen, die Parameter in der Bemerkung aufzuführen.

Eine Prozedur kann mit Hilfe eines Return Knotens einen Wert an den aufrufenden Knoten zurückgeben. Ohne einen solchen Return Knoten wird implizit der leere String zurück geliefert.

Enthalten in: Package, Prozeduren

Kinder: Beliebig

Ausführung: Die Variablen der Prozedur werden als "Fallback" gebunden, d.h. diese Werte werden verwendet, falls eine Variable keine andere Definition hat. Nachdem die Childknoten der Prozedur ausgeführt wurden, werden die Fallbacks wieder gelöscht.

Attribute:

Prozedur Attribute
Abbildung 42.20:  Prozedur Attribute
Name

Die Prozedur wird über ihren Namen, sowie die Namen ihrer Parents identifiziert. Daher sollten Sie einen Namen pro Package nur einmal vergeben und "sprechende" Namen verwenden, die etwas über die Prozedur aussagen und die Sie sich gut merken können.

Variabel: Nein

Einschränkungen: Darf nicht leer sein und keines der Zeichen '.' oder '#' enthalten.

Variablendefinitionen

Hier können Sie Defaultwerte oder "Fallback" Werte für die Parameter der Prozedur definieren. Diese werden herangezogen, wenn eine Variable an keiner anderen Stelle definiert wurde (vgl. Kapitel 6). Außerdem dienen Sie als Dokumentation und bringen Zeitersparnis bei den Variablendefinitionen Attributen, wenn der Dialog für die Auswahl der Prozedur im Prozeduraufruf Knoten verwendet wird. Näheres zur Arbeit mit der Tabelle finden Sie in Abschnitt 2.2.5.

4.2+ Mittels Rechtsklick und Auswahl von »Parameterordnung zurücksetzen«, können Sie die Sortierung der Parameter, wie diese in der Prozedur sortiert sind, wieder herstellen.

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.5.2
Prozeduraufruf

Mit diesem Knoten lässt sich der Testlauf in einer Prozedur fortsetzen. Dieser können beliebige Parameter übergeben werden, z.B. der Name des Clients, Koordinaten für Mausklicks, Namen für eine Dateiauswahl etc. Nach dem Ende der Prozedur wird der im Attribut Variable für Rückgabewert definierten Variable der Rückgabewert der Prozedur zugewiesen und die Ablaufkontrolle kehrt wieder an die ursprüngliche Stelle zurück.

Die aufzurufende Prozedur wird über ihren Namen und die Namen der Packages identifiziert. Die Namen werden analog zu Java-Klassennamen zusammengesetzt, vom äußersten Package bis zur Prozedur, verbunden mit einem Punkt ('.'). Wollen Sie z.B. die Prozedur expandNode im Package tree, das seinerseits im Package main enthalten ist, aufrufen, so müssen Sie als Name main.tree.expandNode angeben.

Sie können auch Prozeduren in anderen Testsuiten aufrufen. Näheres hierzu entnehmen Sie bitte Abschnitt 26.1.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Keine

Ausführung: Die Variablen des Aufrufs werden gebunden, die Prozedur an Hand ihres Namens ermittelt und die Ausführung mit der Prozedur fortgesetzt. Nach dem Ende der Prozedur werden die Variablen des Aufrufs gelöscht.

Attribute:

Prozeduraufruf Attribute
Abbildung 42.21:  Prozeduraufruf Attribute
Name der Prozedur

Der volle Name der Prozedur, zusammengesetzt aus den Namen der übergeordneten Packages und der Prozedur selbst, verbunden mit '.'.

Der "Prozedur auswählen" Button [Prozedur auswählen] oberhalb des Attributs öffnet einen Dialog, in dem Sie die Prozedur direkt auswählen können. Diesen erreichen Sie auch mittels Shift⁠+⁠Return oder Alt⁠+⁠Return, sofern sich der Fokus im Textfeld befindet. Alternativ können Sie den gewünschten Prozedurknoten mittels Strg⁠+⁠C bzw. »Bearbeiten«-»Kopieren« kopieren und seine QF-Test ID durch drücken von Strg⁠+⁠V in das Textfeld einfügen.

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

Variable für Rückgabewert

Der Rückgabewert der Prozedur wird der in diesem Attribut definierten Variable zugewiesen. Diese ist optional. Zusätzlich steht der letzte Rückgabewert einer Prozedur auch immer über ${qftest:return} zur Verfügung.

6.1+ Der Name der Variablen wird im Testsuitebaum angezeigt. Wenn es sich um eine globale Variable handelt, in Schwarz, bei einer lokalen in Blau.

Variabel: Ja

Einschränkungen: Kein

Lokale Variable

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

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

Variabel: Nein

Einschränkungen: Keine

Variablendefinitionen

Hier können Sie Werte der Parameter für die Prozedur definieren. Näheres zur Arbeit mit der Tabelle finden Sie in Abschnitt 2.2.5.

Variabel: Namen der Variablen nein, Werte 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.5.3
Return

Mit Hilfe dieses Knotens kann eine Prozedur vorzeitig beendet und zusätzlich ein Wert an den aufrufenden Knoten zurückgegeben werden.

Aus einem Skript kann der selbe Effekt durch werfen einer ReturnException erzielt werden.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Keine

Ausführung: Es wird eine ReturnException geworfen die zum Abbruch der innersten Prozedur führt. Wird dieser Knoten außerhalb einer Prozedur aufgerufen wird ein Fehler ausgelöst.

Attribute:

Return Attributes
Abbildung 42.22:  Return Attribute
Rückgabewert

Der Wert, der von der Prozedur zurückgegeben werden soll. Ist nichts angegeben, wird der leere String zurückgegeben.

Variabel: Ja

Einschränkungen: Keine

Expliziter Objekttyp

9.0+ In QF-Test Variablen können neben Zeichenketten auch beliebige andere Objekte gespeichert werden. Im Textfeld für den Wert kann zwar nur eine Zeichenkette angegeben werden, doch lässt sich hiermit festlegen, wie die Eingabe von QF-Test interpretiert werden soll:

  • Keine Auswahl: Die Eingabe wird nicht weiter interpretiert. In den meisten Fällen wird das gespeicherte Objekt eine Zeichenkette sein, es sei denn, die Eingabe wurde durch Variablen-Expansion vollständig durch eine andere Variable ersetzt, wodurch deren Objekt unverändert übernommen wird.
  • String: Die Eingabe wird in eine Zeichenkette umgewandelt.
  • Boolean: Die Eingabe wird in einen boolschen Wahrheitswert umgewandelt, wobei 0, leere Strings sowie die Zeichenketten false, no und nein als false, andere Werte als true ausgewertet werden.
  • Number: Die Eingabe wird in eine Zahl umgewandelt. Je nach Eingabewert kann dies ein Integer, Long, BigInteger, Double oder ein BigDecimal sein. Schlägt die Umwandlung fehl, so wird eine ValueCastException geworfen.
  • Object aus JSON: Die Eingabe wird als JSON-String interpretiert und in verschachtelte Maps und Lists mit Strings, Numbers und Booleans umgewandelt. Schlägt die Umwandlung fehl, so wird eine ValueCastException geworfen.

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.5.4
Package

Packages dienen dazu, die Prozeduren einer Testsuite zu strukturieren, um eine bessere Übersicht zu erhalten.

Enthalten in: Package, Prozeduren

Kinder: Package, Prozedur

Ausführung: Kann nicht ausgeführt werden.

Attribute:

Package Attribute
Abbildung 42.23:  Package Attribute
Name

Der Name eines Packages ist ein Teil der Identifikation der in ihm enthaltenen Prozeduren. Damit die Zuordnung eindeutig ist, sollte der Name des Packages innerhalb des Parents eindeutig sein. Verwenden Sie auch für die Packages "sprechende" Namen, die etwas über die darin enthaltenen Prozeduren aussagen und die Sie sich gut merken können.

Variabel: Nein

Einschränkungen: Darf nicht leer sein und keines der Zeichen '.' oder '#' enthalten.

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.

Grenze für relative Aufrufe

Ist dieses Attribut gesetzt, ist ein relativer Prozeduraufruf, ein relativer Testaufruf oder eine relative Referenz auf eine Abhängigkeit innerhalb dieses Knotens gestattet. Relative Aufrufe bzw. Referenzen, die diese Grenze überschreiten sind nicht erlaubt. Wenn dieses Attribut in der gesamten Hierarchie nicht gesetzt ist, so können keine relativen Prozeduraufrufe einfügt werden. Relative Testaufrufe sind unterhalb des Testsuite Knotens immer möglich.

Variabel: Nein

Einschränkungen: Keine

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.5.5
Prozeduren

Dies ist die Wurzel aller Packages und Prozeduren.

Enthalten in: Wurzelknoten

Kinder: Package, Prozedur

Ausführung: Kann nicht ausgeführt werden.

Attribute:

Packages Attribute
Abbildung 42.24:  Prozeduren 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.

Grenze für relative Aufrufe

Ist dieses Attribut gesetzt, ist ein relativer Prozeduraufruf, ein relativer Testaufruf oder eine relative Referenz auf eine Abhängigkeit innerhalb dieses Knotens gestattet. Relative Aufrufe bzw. Referenzen, die diese Grenze überschreiten sind nicht erlaubt. Wenn dieses Attribut in der gesamten Hierarchie nicht gesetzt ist, so können keine relativen Prozeduraufrufe einfügt werden. Relative Testaufrufe sind unterhalb des Testsuite Knotens immer möglich.

Variabel: Nein

Einschränkungen: Keine

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