30.11
Verschiedenes

Dieser Abschnitt führt die restlichen Knotentypen auf, die nirgends sonst so recht dazu passen.

30.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.5), 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 30.63:  'Variable setzen' Attribute
'Variablenname'

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

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

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.

'Id'

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

Variabel: Ja

Einschränkungen: Keine

30.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 30.64:  '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.

'Id der Komponente'

Die 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 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 17.1 und Abschnitt 7.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, anderfalls 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 8.

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

'Id'

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

Variabel: Ja

Einschränkungen: Keine

30.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 30.65:  '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.

'Id der Komponente'

Die 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 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 17.1 und Abschnitt 7.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 benamten 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 starten' Knoten definiert werden.

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

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

'Id'

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

Variabel: Ja

Einschränkungen: Keine

30.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 30.66:  '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 8.

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

'Id'

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

Variabel: Ja

Einschränkungen: Keine

30.11.5
'Ressourcen laden'

Hiermit laden Sie Daten aus einem ResourceBundle und stellen diese für die erweiterte Variablensyntax ${Gruppe:Name} (vgl. Abschnitt 8.4) 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 30.67:  '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 ausser 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

'Id'

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

Variabel: Ja

Einschränkungen: Keine

30.11.6
'Properties laden'

Hiermit laden Sie Daten aus einer Properties Datei und stellen diese für die erweiterte Variablensyntax ${Gruppe:Name} (vgl. Abschnitt 8.4) 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 30.68:  '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.

'Id'

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

Variabel: Ja

Einschränkungen: Keine

Web30.11.7
'HTTP Request'

Dieser sehr spezielle Knoten bietet eine einfache Möglichkeit, einen GET oder POST Request direkt via HTTP/HTTPS an einen Webserver abzusetzen. Die Verwendung ist bei Lasttests oder Szenarien mit Verarbeitung von Massendaten (z.B. Ausfüllen von Formularen) sehr hilfreich, da beim Abspielen die Simulation von Nutzereingaben im SUT und die damit verbundene Abhängigkeit von den Ladezeiten des SUT entfallen. Die Verwendung von Requests stellt somit eine Ergänzung der in Kapitel 21 und Abschnitt 30.4 beschriebenen Funktionalität für Lasttests und datengetriebenes Testen dar.

Wenn der vom Server zurückgegebene Statuscode 400 oder größer ist, wird eine entsprechende Fehlermeldung in das Protokoll geschrieben. Detailinformtationen zu den verschiedenen Statuscodes können sie unter http://www.w3.org/Protocols/HTTP/HTRESP.html nachlesen. Zusätzlich können Sie die Antwort des Servers einer Variablen zuweisen und über das Attribut 'Antwort des Servers in Protokoll schreiben' diese Antwort auch im Protokoll ablegen.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Keine

Ausführung: Der GET/POST Request wird via HTTP/HTTPS direkt von QF-Test aus an die angegebene URL geschickt. Wenn der vom Server zurückgegebene Statuscode größer/gleich 400 ist wird eine entsprechende Fehlermeldung in das Protokoll geschrieben.

Attribute:

HTTP Request Attribute
Abbildung 30.69:  'HTTP Request' Attribute
'URL'

Die URL, an die der Request gesendet werden soll, exklusive der Parameter. Als Protokoll sind sowohl HTTP als auch HTTPS zulässig.

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

'Methode'

Über dieses Attribut legen Sie die Methode des Requests fest, GET oder POST.

Variabel: Nein

Einschränkungen: Keine

'Parameter'

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

Variabel: Ja

Einschränkungen: Keine

'Variable für Antwort des Servers'

Der Name der Variable welcher die Antwort des Servers (HTTP-Response) als Wert zugewiesen wird (vgl. Kapitel 8).

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

Variabel: Nein

Einschränkungen: Keine

'Antwort des Servers in Protokoll schreiben'

Ist dieses Attribut gesetzt, wird zusätzlich zum Status-Code die Antwort des Servers (HTTP-Response) in das Protokoll geschrieben.

Variabel: Ja

Einschränkungen: Keine

'Id'

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

Variabel: Ja

Einschränkungen: Keine