Handbuch

37.11
Verschiedenes

Dieser Abschnitt führt die restlichen Knotentypen auf, die in keine der bisher behandelten Kategorien fallen.

37.11.1
'Variable setzen'

Mit diesem Knoten können Sie zur Laufzeit eines Tests den Wert einer globalen Variable setzen. Wenn der Test interaktiv aus QF-Test gestartet wurde und nicht mittels qftest -batch (vgl. Abschnitt 1.7), können Sie den Wert auf Wunsch interaktiv über einen Dialog festlegen.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Keine

Ausführung: Wenn der Test interaktiv abläuft und das 'Interaktiv' Attribut gesetzt ist, wird ein Dialog geöffnet, in dem der Wert für die Variable eingegeben werden kann. Verstreicht die 'Wartezeit' oder wird der Wert mit dem OK Button bestätigt, wird die Variable entsprechend in den globalen Variablen gesetzt. Bricht der Anwender den Dialog mit dem Abbrechen Button ab, wird der Test beendet. Im nicht-interaktiven Fall wird die Variable direkt auf den 'Defaultwert' gesetzt.

Attribute:

Variable setzen Attribute
Abbildung 37.64:  'Variable setzen' Attribute
'Variablenname'

Der Name der globalen Variable, der der Wert zugewiesen wird (vgl. Kapitel 7).

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

'Lokale Variable'

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

Variabel: Nein

Einschränkungen: Keine

'Defaultwert'

Der Standardwert für die Variable, falls der Test nicht interaktiv abläuft, das 'Interaktiv' Attribut nicht gesetzt ist oder die 'Wartezeit' verstreicht.

Variabel: Ja

Einschränkungen: Keine

'Interaktiv'

Legt fest, ob der Wert über einen Dialog vom Anwender bestimmt werden kann, sofern der Test selbst interaktiv abläuft.

Variabel: Ja

Einschränkungen: Keine

'Beschreibung'

Eine kurze Beschreibung, die im Dialog angezeigt wird. Ist dieser Wert leer, wird als Beschreibung Wert für <'Variablenname'> verwendet.

Variabel: Ja

Einschränkungen: Keine

'Wartezeit'

Ein optionales Zeitlimit für die Eingabe. Wird der Dialog angezeigt und verstreicht die angegebene Zeitspanne, ohne dass der Wert verändert wurde, wird der Dialog automatisch geschlossen und der 'Defaultwert' übernommen. Damit kann das blockieren eines Tests verhindert werden, der zwar interaktiv gestartet wurde aber unbeaufsichtigt ablaufen soll.

Variabel: Ja

Einschränkungen: Leer oder > 0.

'QF-Test ID'

Die QF-Test ID ist für diesen Knoten zur Zeit ohne Bedeutung.

Variabel: Nein

Einschränkungen: Darf keines der Zeichen '\', '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.

'Verzögerung vorher/nachher'

Mit diesen Parametern kann vor oder nach der Ausführung eine Verzögerung bewirkt werden. Sind sie nicht gesetzt, wird die Standardverzögerung aus den Optionen verwendet.

Variabel: Ja

Einschränkungen: Leer oder >0

'Bemerkung'

Hier können Sie einen beliebigen Kommentar eintragen.

Hinweis Für die ausführliche Dokumentation, insbesondere von 'Testfallsatz', 'Testfall' oder 'Prozedur' Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von [Alt-Eingabe] oder Klicken des Edit row Buttons der Kommentar komfortabel bearbeitet werden kann.

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

Variabel: Ja

Einschränkungen: Keine

37.11.2
'Warten auf Komponente'

Dieser Knoten ist sehr wichtig für das Timing eines Testlaufs. Je nach Auslastung des Testsystems kann es unterschiedlich lange dauern, bis z.B. ein neu geöffnetes Fenster tatsächlich erscheint. Mit diesem Knoten läßt sich der Test so lange anhalten, bis eine gewünschte Komponente oder ein Unterelement verfügbar ist. Das Resultat des Knotens kann auch in einer Variable mittels des Attributs 'Variable für Ergebnis' gesetzt werden. Mit Ausschalten des Attributs 'Im Fehlerfall Exception werfen' kann das Werfen der Exceptions unterdrückt werden.

In den globalen Optionen läßt sich eine Zeitspanne einstellen, die grundsätzlich verstreichen darf, bis eine beliebige Komponente verfügbar ist, sowie ein zusätzliches Timeout zum Warten auf ein Unterelement. Da diese Timeouts für alle Events gelten, sollten sie nicht größer als ca. zwei bis fünf Sekunden gewählt werden. Dieser Knoten erlaubt es, diese Timeouts in einzelnen Fällen zu vergrößern, ohne damit den gesamten Testlauf unnötig zu verlangsamen.

Durch Setzen des 'Warten auf Verschwinden' Attributs kann dieser Knoten auch dazu verwendet werden, auf das Verschwinden einer Komponente zu warten.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Keine

Ausführung: Die Daten der Zielkomponente werden an das SUT geschickt. Die TestEventQueue ermittelt daraus im SUT die passende Komponente und wartet gegebenenfalls auf deren Erscheinen, oder das Verstreichen des Timeouts.

Attribute:

Warten auf Komponente Attribute
Abbildung 37.65:  'Warten auf Komponente' Attribute
'Client'

Der Name unter dem der Java Prozess des SUT gestartet wurde, aus dem die Daten gelesen werden sollen.

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

'QF-Test ID der Komponente'

Die QF-Test ID des 'Fenster', 'Komponente' oder 'Element' Knotens dessen Daten abgefragt werden.

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

Dieses Attribut unterstützt ein spezielles Format, das es erlaubt, Komponenten in anderen Testsuiten zu referenzieren. Des weiteren können Unterelemente von Knoten direkt angegeben werden, ohne dass ein eigener Knoten dafür vorhanden sein muss. Näheres hierzu erfahren Sie in Abschnitt 20.1 und Abschnitt 6.3.

Variabel: Ja

Einschränkungen: Darf nicht leer sein

'Wartezeit'

Zeit in Millisekunden, die maximal verstreichen darf.

Variabel: Ja

Einschränkungen: >= 0

'Warten auf Verschwinden'

Ist dieses Attribut gesetzt, wird darauf gewartet, dass eine Komponente verschwindet. Bleibt die Komponente die ganze Zeit über vorhanden, wird eine ComponentFoundException geworfen.

Ist als Ziel ein Unterelement einer komplexen Komponente angegeben, muss diese Komponente selbst schon vorhanden sein, andernfalls wird eine ComponentNotFoundException ausgelöst.

Variabel: Ja

Einschränkungen: Keine

'Variable für Ergebnis'

Mit diesem optionalen Attribut können Sie den Namen einer Variable festlegen, die abhängig vom Ergebnis der Aktion auf 'true' (erfolgreich) oder 'false' (fehlgeschlagen) gesetzt wird.

Hinweis Ist dieses Attribut gesetzt, wird das Attribut 'Fehlerstufe der Meldung' ignoriert. Das Attribut 'Im Fehlerfall Exception werfen' behält dagegen seine Funktion, so dass es möglich ist, eine Ergebnisvariable zu erhalten und trotzdem eine Exception zu werfen.

Variabel: Ja

Einschränkungen: Keine

'Lokale Variable'

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

Variabel: Nein

Einschränkungen: Keine

'Fehlerstufe der Meldung'

Über dieses Attribut legen Sie die Fehlerstufe der Meldung fest, die in das Protokoll geschrieben wird, wenn die Aktion nicht erfolgreich ist. Zur Auswahl stehen Nachricht, Warnung und Fehler.

Hinweis Dieses Attribut ist ohne Bedeutung, falls eines der Attribute 'Im Fehlerfall Exception werfen' oder 'Variable für Ergebnis' gesetzt ist.

Variabel: Nein

Einschränkungen: Keine

'Im Fehlerfall Exception werfen'

Ist dieses Attribut gesetzt, wird bei einem Scheitern der Aktion eine Exception geworfen. Für 'Check...' Knoten wird eine CheckFailedException geworfen, für 'Warten auf...' Knoten eine spezifische Exception für diesen Knoten.

Variabel: Nein

Einschränkungen: Keine

'QF-Test ID'

Die QF-Test ID ist für diesen Knoten zur Zeit ohne Bedeutung.

Variabel: Nein

Einschränkungen: Darf keines der Zeichen '\', '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.

'Verzögerung vorher/nachher'

Mit diesen Parametern kann vor oder nach der Ausführung eine Verzögerung bewirkt werden. Sind sie nicht gesetzt, wird die Standardverzögerung aus den Optionen verwendet.

Variabel: Ja

Einschränkungen: Leer oder >0

'Bemerkung'

Hier können Sie einen beliebigen Kommentar eintragen.

Hinweis Für die ausführliche Dokumentation, insbesondere von 'Testfallsatz', 'Testfall' oder 'Prozedur' Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von [Alt-Eingabe] oder Klicken des Edit row Buttons der Kommentar komfortabel bearbeitet werden kann.

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

Variabel: Ja

Einschränkungen: Keine

37.11.3
'Warten auf Laden des Dokuments'

Web Dieser Knoten ist eine besondere Variante des 'Warten auf Komponente' Knotens speziell für Webseiten. Er wartet nicht nur auf das Vorhandensein eines Dokuments, sondern, falls das Dokument beim Abspielen des letzten Events bereits geladen und bekannt war, darauf, dass dieses neu geladen wird. Da beim Nachladen von Webseiten oder Frames oft das selbe Dokument neu geladen wird, könnte QF-Test ohne diese Funktionalität nicht entscheiden, ob zu einem gegebenen Zeitpunkt noch das alte Dokument vorhanden ist oder schon ein neues geladen wurde. Im ersten Fall würde daraufhin ggf. ein Event im alten Dokument wiedergegeben, der keine Wirkung mehr erzielt, weil inzwischen das Laden der neuen Seite beginnt.

Über das Attribut 'Name des Browser-Fensters' kann die Suche auf ein vorhandenes Browser-Fenster beschränkt, oder einem neuen Browser-Fenster ein Name zugewiesen werden. Ist 'Ladevorgang nach Ablauf der Wartezeit abbrechen' gesetzt, bricht QF-Test nach Ablauf der Wartezeit das Laden des Dokuments ab. Das Resultat des Knotens kann auch in einer Variable mittels des Attributs 'Variable für Ergebnis' gesetzt werden. Mit Ausschalten des Attributs 'Im Fehlerfall Exception werfen' kann das Werfen einer DocumentNotLoadedException unterdrückt werden.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Keine

Ausführung: Die Daten des Zieldokuments werden an das SUT geschickt. Die TestEventQueue ermittelt daraus im SUT das passende Dokument und wartet darauf, dass es komplett geladen wird, oder das Timeout verstreicht, woraufhin eine DocumentNotLoadedException geworfen wird.

Attribute:

Warten auf Komponente Attribute
Abbildung 37.66:  'Warten auf Laden des Dokuments' Attribute
'Client'

Der Name unter dem der Java Prozess des SUT gestartet wurde, aus dem die Daten gelesen werden sollen.

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

'QF-Test ID der Komponente'

Die QF-Test ID des 'Fenster', 'Komponente' oder 'Element' Knotens dessen Daten abgefragt werden.

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

Dieses Attribut unterstützt ein spezielles Format, das es erlaubt, Komponenten in anderen Testsuiten zu referenzieren. Des weiteren können Unterelemente von Knoten direkt angegeben werden, ohne dass ein eigener Knoten dafür vorhanden sein muss. Näheres hierzu erfahren Sie in Abschnitt 20.1 und Abschnitt 6.3.

Variabel: Ja

Einschränkungen: Darf nicht leer sein

'Name des Browser-Fensters'

Dieses Attribut hat eine doppelte Funktion. Wird es auf den Namen eines existierenden Browser-Fensters gesetzt, wartet QF-Test auf das Laden des Dokuments nur in diesem Fenster. Ist der Name gesetzt und existiert kein zugehöriges Browser-Fenster, wird die Suche auf Dokumente in neuen oder noch nicht benannten Browser-Fenstern beschränkt. Wird dabei ein passendes Dokument gefunden, wird der Name dem zugehörigen Browser-Fenster zugewiesen. Dies ist die einzige Möglichkeit einem Popup-Fenster einen Namen zu geben. Für explizit gestartete Browser kann dieser mittels des Attributs 'Name des Browser-Fensters' im 'Browser-Fenster öffnen' Knoten definiert werden. Der Umgang mit mehreren Fenstern wird in FAQ 24 genauer erläutert.

Variabel: Ja

Einschränkungen: Keine

'Wartezeit'

Zeit in Millisekunden, die maximal verstreichen darf.

Variabel: Ja

Einschränkungen: >= 0

'Ladevorgang nach Ablauf der Wartezeit abbrechen'

Ist dieses Attribut gesetzt, wird nach erfolglosem Verstreichen der Wartezeit der Ladevorgang abgebrochen und zwar abhängig vom Attribut 'Name des Browser-Fensters' in allen Browsern oder nur dem angegebenen. Ein solcher Abbruch hat keinen Einfluss auf das Ergebnis, nach Ablauf der Wartezeit gilt die Operation in jedem Fall als gescheitert.

Variabel: Ja

Einschränkungen: Keine

'Variable für Ergebnis'

Mit diesem optionalen Attribut können Sie den Namen einer Variable festlegen, die abhängig vom Ergebnis der Aktion auf 'true' (erfolgreich) oder 'false' (fehlgeschlagen) gesetzt wird.

Hinweis Ist dieses Attribut gesetzt, wird das Attribut 'Fehlerstufe der Meldung' ignoriert. Das Attribut 'Im Fehlerfall Exception werfen' behält dagegen seine Funktion, so dass es möglich ist, eine Ergebnisvariable zu erhalten und trotzdem eine Exception zu werfen.

Variabel: Ja

Einschränkungen: Keine

'Lokale Variable'

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

Variabel: Nein

Einschränkungen: Keine

'Fehlerstufe der Meldung'

Über dieses Attribut legen Sie die Fehlerstufe der Meldung fest, die in das Protokoll geschrieben wird, wenn die Aktion nicht erfolgreich ist. Zur Auswahl stehen Nachricht, Warnung und Fehler.

Hinweis Dieses Attribut ist ohne Bedeutung, falls eines der Attribute 'Im Fehlerfall Exception werfen' oder 'Variable für Ergebnis' gesetzt ist.

Variabel: Nein

Einschränkungen: Keine

'Im Fehlerfall Exception werfen'

Ist dieses Attribut gesetzt, wird bei einem Scheitern der Aktion eine Exception geworfen. Für 'Check...' Knoten wird eine CheckFailedException geworfen, für 'Warten auf...' Knoten eine spezifische Exception für diesen Knoten.

Variabel: Nein

Einschränkungen: Keine

'QF-Test ID'

Die QF-Test ID ist für diesen Knoten zur Zeit ohne Bedeutung.

Variabel: Nein

Einschränkungen: Darf keines der Zeichen '\', '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.

'Verzögerung vorher/nachher'

Mit diesen Parametern kann vor oder nach der Ausführung eine Verzögerung bewirkt werden. Sind sie nicht gesetzt, wird die Standardverzögerung aus den Optionen verwendet.

Variabel: Ja

Einschränkungen: Leer oder >0

'Bemerkung'

Hier können Sie einen beliebigen Kommentar eintragen.

Hinweis Für die ausführliche Dokumentation, insbesondere von 'Testfallsatz', 'Testfall' oder 'Prozedur' Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von [Alt-Eingabe] oder Klicken des Edit row Buttons der Kommentar komfortabel bearbeitet werden kann.

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

Variabel: Ja

Einschränkungen: Keine

37.11.4
'Warten auf Ende des Downloads'

Web Dieser spezielle Knoten ist nur auf Webseiten anwendbar. Er kann verwendet werden, um auf das Ende eines Downloads zu warten, der von QF-Test aus angestoßen wurde. Dies kann nötig sein, wenn Sie den Inhalt einer heruntergeladenen Datei verifizieren oder die Zeit für den Download messen wollen.

Ist der Download nach Ablauf der Wartezeit nicht beendet, wird eine DownloadNotCompleteException geworden, sofern diese nicht mittels des Attributs 'Im Fehlerfall Exception werfen' unterdrückt wird. In jedem Fall kann der Download durch Aktivieren des Attributs 'Download nach Ablauf der Wartezeit abbrechen' vorzeitig abgebrochen werden, um einen weiteren Download für die selbe Zieldatei zu ermöglichen. Das Ergebnis der Operation kann in einer Variable abgelegt werden indem deren Name über das Attribut 'Variable für Ergebnis' festgelegt wird.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Keine

Ausführung: Die Zieldatei für den Download wird zum SUT geschickt, wo QF-Test auf das Ende des Downloads wartet. Verstreicht die Wartezeit erfolglos, wird eine DownloadNotCompleteException geworfen.

Attribute:

Warten auf Ende des Download Attribute
Abbildung 37.67:  'Warten auf Ende des Downloads' Attribute
'Client'

Der Name unter dem der Java Prozess des SUT gestartet wurde, aus dem die Daten gelesen werden sollen.

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

'Datei'

Die Zieldatei für den Download.

Variabel: Ja

Einschränkungen: Gültiger Dateiname

'Wartezeit'

Zeit in Millisekunden, die maximal verstreichen darf.

Variabel: Ja

Einschränkungen: >= 0

'Download nach Ablauf der Wartezeit abbrechen'

Ist dieses Attribut gesetzt, wird der Download nach erfolglosem Verstreichen der Wartezeit abgebrochen.

Variabel: Ja

Einschränkungen: Keine

'Variable für Ergebnis'

Mit diesem optionalen Attribut können Sie den Namen einer Variable festlegen, die abhängig vom Ergebnis der Aktion auf 'true' (erfolgreich) oder 'false' (fehlgeschlagen) gesetzt wird.

Hinweis Ist dieses Attribut gesetzt, wird das Attribut 'Fehlerstufe der Meldung' ignoriert. Das Attribut 'Im Fehlerfall Exception werfen' behält dagegen seine Funktion, so dass es möglich ist, eine Ergebnisvariable zu erhalten und trotzdem eine Exception zu werfen.

Variabel: Ja

Einschränkungen: Keine

'Lokale Variable'

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

Variabel: Nein

Einschränkungen: Keine

'Fehlerstufe der Meldung'

Über dieses Attribut legen Sie die Fehlerstufe der Meldung fest, die in das Protokoll geschrieben wird, wenn die Aktion nicht erfolgreich ist. Zur Auswahl stehen Nachricht, Warnung und Fehler.

Hinweis Dieses Attribut ist ohne Bedeutung, falls eines der Attribute 'Im Fehlerfall Exception werfen' oder 'Variable für Ergebnis' gesetzt ist.

Variabel: Nein

Einschränkungen: Keine

'Im Fehlerfall Exception werfen'

Ist dieses Attribut gesetzt, wird bei einem Scheitern der Aktion eine Exception geworfen. Für 'Check...' Knoten wird eine CheckFailedException geworfen, für 'Warten auf...' Knoten eine spezifische Exception für diesen Knoten.

Variabel: Nein

Einschränkungen: Keine

'QF-Test ID'

Die QF-Test ID ist für diesen Knoten zur Zeit ohne Bedeutung.

Variabel: Nein

Einschränkungen: Darf keines der Zeichen '\', '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.

'Verzögerung vorher/nachher'

Mit diesen Parametern kann vor oder nach der Ausführung eine Verzögerung bewirkt werden. Sind sie nicht gesetzt, wird die Standardverzögerung aus den Optionen verwendet.

Variabel: Ja

Einschränkungen: Leer oder >0

'Bemerkung'

Hier können Sie einen beliebigen Kommentar eintragen.

Hinweis Für die ausführliche Dokumentation, insbesondere von 'Testfallsatz', 'Testfall' oder 'Prozedur' Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von [Alt-Eingabe] oder Klicken des Edit row Buttons der Kommentar komfortabel bearbeitet werden kann.

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

Variabel: Ja

Einschränkungen: Keine

37.11.5
'Ressourcen laden'

Hiermit laden Sie Daten aus einem ResourceBundle und stellen diese für die erweiterte Variablensyntax ${Gruppe:Name} (vgl. Abschnitt 7.5) zur Verfügung. Informationen über ResourceBundles finden Sie in der Beschreibung des 'ResourceBundle' Attributs.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Keine

Ausführung: Das ResourceBundle wird geladen und unter dem Gruppennamen für spätere Zugriffe gebunden.

Attribute:

Ressourcen laden Attribute
Abbildung 37.68:  'Ressourcen laden' Attribute
'Gruppenname'

Der Gruppenname unter dem das ResourceBundle abgelegt wird. Der Wert einer Definition der Form Name=Wert aus diesem ResourceBundle kann dann mittels ${Gruppenname:Name} abgerufen werden.

Variabel: Ja

Einschränkungen: Darf nicht leer sein und sollte keine Sonderzeichen enthalten.

'ResourceBundle'

Gibt das ResourceBundle an, das geladen werden soll. Hierfür ist etwas Java Verständnis nötig, ggf. müssen Sie sich bei einem Entwickler erkundigen, wo die Ressourcen für das SUT abgelegt sind.

Die Ressourcen werden mit Hilfe der Java Funktion ResourceBundle.getBundle() geladen. Dazu muss eine passende Datei mit der Endung .class oder .properties im CLASSPATH zu finden sein. Geben Sie in diesem Attribut den vollen Packagenamen mit '.' als Trennzeichen an, sowie den Basisnamen des Bundles ohne Locale und Endung.

Beispiel: QF-Test selbst enthält unter anderem ein deutsches ResourceBundle in der Datei de/qfs/apps/qftest/resources/properties/qftest_de.properties, die im Archiv qfshared.jar enthalten ist. Um darauf zuzugreifen, müssten Sie hier den Wert de.qfs.apps.qftest.resources.properties.qftest angeben und das 'Locale' auf de setzen.

Variabel: Ja

Einschränkungen: Muss ein ResourceBundle im CLASSPATH bezeichnen.

'Locale'

Das Hauptanwendungsgebiet von ResourceBundles ist es, Daten in verschiedenen Sprachen bereitzustellen. Hiermit legen Sie fest, welche Version des Bundles geladen werden soll. Dabei wird eine dem ISO Standard entsprechende Angabe der Form Sprache_Land_Variante erwartet. Sprache ist ein aus zwei Kleinbuchstaben bestehendes Kürzel, z.B. de für Deutsch oder en für Englisch. Land legt mit zwei Großbuchstaben die landesspezifische Ausprägung fest, z.B. en_UK für britisches und en_US für amerikanisches Englisch. Mit der Variante kann noch feiner unterschieden werden, was aber selten benötigt wird.

QF-Test stützt sich zum Laden des Bundles auf den in der Java Dokumentation für ResourceBundle.getBundle() beschriebenen Mechanismus, der vereinfacht dargestellt wie folgt arbeitet:

Um ein ResourceBundle namens res für das Locale de_DE zu laden, durchsucht Java den CLASSPATH zunächst nach einer Datei namens res_de_DE.class oder res_de_DE.properties, dann nach res_de.class oder res_de.properties und schließlich nach res.class und res.properties. Dabei werden die weniger spezifischen Dateien auch dann geladen, wenn die spezifischeren bereits gefunden wurden. Aus diesen werden aber nur Werte übernommen, die nicht in der spezifischen Datei definiert wurden. Dadurch können Sie z.B. in res_de.properties alle deutschen Ressourcen ablegen. Wenn Sie einige davon für die Schweiz anders definieren wollen, erstellen Sie die Datei res_de_CH.properties und geben dort nur die abweichenden Definitionen an.

Java hat allerdings ein "Feature", das was zu einem überraschenden Ergebnis führen kann: Wenn keine Datei außer der Basisdatei res.properties gefunden wurde, sucht Java noch einmal nach spezifischen Dateien, diesmal für das Standard Locale, in dem die VM gerade läuft. Wenn Sie also mit dem deutschen QF-Test arbeiten und englische Ressourcen laden wollen, die direkt in res.properties ohne weiteres res_en.properties enthalten sind und eine deutsche Version in res_de.properties liegt, wird Java, selbst wenn Sie en als Locale angeben, die deutsche Version laden. Dies können Sie unterbinden, indem Sie einen einzelnen Unterstrich '_' als Locale angeben. In diesem Fall wird definitiv nur res.properties geladen.

Wenn Sie dieses Attribut leer lassen, wird das Standard Locale verwendet in dem QF-Test gerade läuft.

Variabel: Ja

Einschränkungen: Leer oder gültige Locale Bezeichnung

'QF-Test ID'

Die QF-Test ID ist für diesen Knoten zur Zeit ohne Bedeutung.

Variabel: Nein

Einschränkungen: Darf keines der Zeichen '\', '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.

'Verzögerung vorher/nachher'

Mit diesen Parametern kann vor oder nach der Ausführung eine Verzögerung bewirkt werden. Sind sie nicht gesetzt, wird die Standardverzögerung aus den Optionen verwendet.

Variabel: Ja

Einschränkungen: Leer oder >0

'Bemerkung'

Hier können Sie einen beliebigen Kommentar eintragen.

Hinweis Für die ausführliche Dokumentation, insbesondere von 'Testfallsatz', 'Testfall' oder 'Prozedur' Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von [Alt-Eingabe] oder Klicken des Edit row Buttons der Kommentar komfortabel bearbeitet werden kann.

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

Variabel: Ja

Einschränkungen: Keine

37.11.6
'Properties laden'

Hiermit laden Sie Daten aus einer Properties Datei und stellen diese für die erweiterte Variablensyntax ${Gruppe:Name} (vgl. Abschnitt 7.5) zur Verfügung.

Properties sind einfacher zu handhaben als ein ResourceBundle, da Sie die Datei direkt angeben können, bieten dafür aber weniger Möglichkeiten. Das Format einer Properties Datei ist einfach: Zeilen der Form Name=Wert mit beliebigem Leerraum um das '=' Zeichen. Komplexe, auch mehrzeilige Definitionen sind möglich. Näheres entnehmen Sie bitte der Java Dokumentation oder befragen Sie Ihre Entwickler.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Keine

Ausführung: Die Properties werden geladen und unter dem Gruppennamen für spätere Zugriffe gebunden.

Attribute:

Properties laden Attribute
Abbildung 37.69:  'Properties laden' Attribute
'Gruppenname'

Der Gruppenname unter dem die Properties abgelegt werden. Der Wert einer Definition der Form Name=Wert aus diesen Properties kann dann mittels ${Gruppenname:Name} abgerufen werden.

Variabel: Ja

Einschränkungen: Darf nicht leer sein und sollte keine Sonderzeichen enthalten.

'Properties Datei'

Legt die Datei fest, aus der die Properties geladen werden. Diese kann entweder mit absolutem Pfad angegeben werden, oder relativ zur aktuellen Suite. Als Trennzeichen für Verzeichnisse sollten Sie immer '/' angeben, QF-Test setzt es dann für das aktuelle Betriebssystem um.

Der "..." Button öffnet einen Dialog, in dem Sie die Datei direkt auswählen können. Diesen erreichen Sie auch mittels [Shift-Return] oder [Alt-Return], sofern sich der Fokus im Textfeld befindet.

Variabel: Ja

Einschränkungen: Muss eine existierende Properties Datei bezeichnen.

'Zeichenkodierung der Datei ist UTF-8'

Bis Java 8 mussten Properties-Dateien für die Klasse java.util.Properties immer ISO-Latin-1 kodiert sein. Ab Java 9 ist die Standardkodierung hierfür UTF-8. QF-Test unterstützt beides und verwendet die UTF-8 Kodierung, falls dieses Attribut gesetzt ist, andernfalls ISO-Latin-1.

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

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

Variabel: Ja

Einschränkungen: Keine

37.11.7
'Unit Test'

Hiermit können JUnit-Tests ausgeführt werden.

JUnit-Tests sind für Komponenten und Integrationstests geeignet. Also für einfache Tests, welche oft wiederholt werden. Unit Tests können entweder innerhalb eines SUT-Skripts definiert werden, mit dem SUT oder aus Java-Klassen geladen werden.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Keine

Ausführung: Die benötigten Ressourcen und Injections werden geladen und vorbereitet. Dann werden nacheinander die einzelnen Test-Klassen ausgeführt.

Attribute:

Unit Test mit Server Skript Attribute
Abbildung 37.70:  'Unit Test' aus einem Skript ohne Verwendung eines Clients
Unit Test mit Client Klassen Attribute
Abbildung 37.71:  'Unit Test' aus Java-Klassen mit Verwendung eines Clients
'In Unit Test Ausführungsumgebung ausführen'

Ob die Unit Tests in einer eigenen Umgebung ausgeführt werden sollen. Falls diese Option deaktiviert ist, muss ein Client angegeben werden, in welchem die Tests ausgeführt werden.

Variabel: Ja

Einschränkungen: Keine.

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

'Quelle'

Die Quelle aus der die JUnit-Tests ausgeführt werden können. Diese kann entweder aus einem SUT-Skript bestehen oder aus Java-Klassen, welche in das SUT geladen werden.

'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 12.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 Edit row 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 44).

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

'Test-Klassen'

Hier werden die Test-Klassen angegeben, welche über in den angegebenen Classpaths geladen wurden und ausgeführt werden sollen. Diese werden als Testschritte ausgeführt.

Anstatt vollständiger Klassennamen können auch Reguläre Ausdrücke angegeben werden.

Test-Klassen werden gefunden, wenn sie die JUnit 4 Test-Annotation besitzen, von der JUnit 3 Klasse unit.org.TestCase abgeleitet sind oder eine RunWith-Annotation besitzen.

Folgende Reguläre Ausdrücke sind möglich:

Regulärer Ausdruck Bedeutung
**.MainTest Alle MainTest-Klassen in allen Packages.
de.qfs.test.* Alle Test-Klassen im package de.qfs.test.
de.qfs.**.* Alle Test Klassen in allen Packages unter de.qfs.
Tabelle 37.24:  Mögliche Reguläre Ausdrücke

Hinweis Beim Suchen der Test-Klassen werden alle Klassen, die sich in den angegeben Verzeichnissen befinden, geladen. Der Ausdruck **.* lädt alle Klassen im Classpath und somit auch deren statische Felder. Daher sollte er nur mit Vorsicht verwendet werden.

Variabel: Ja

Einschränkungen: Die Klasse muss vorhanden sein.

'Classpath'

Hier können Dateien bzw. Ordner angegeben werden aus welchen die Test-Klassen geladen werden.

Variabel: Ja

Einschränkungen: Der angegebene Pfad muss gültig sein.

'Injections'

Mit den Injections können Objekte von QF-Test in die Unit Tests übertragen werden, um darin mit ihnen zu arbeiten.

Typ Beschreibung
String QF-Test Variablen oder direkte Werte.
Komponente Komponenten auf QF-Test.
WebDriver WebDriver Objekte des aktuellen Browsers.
Tabelle 37.25:  Arten von Injections

Hinweis Es muss kein Wert für "Feld" angegeben werden. In diesem Fall wird als Standardwert instance verwendet.

Variabel: Ja

Einschränkungen: Die Objekte müssen vorhanden sein.

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

Variabel: Ja

Einschränkungen: Siehe Kapitel 40

'Name'

Der Name eines Unit Tests 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 Edit row Buttons der Kommentar komfortabel bearbeitet werden kann.

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

Variabel: Ja

Einschränkungen: Keine