34.7 Prozesse

Um die Kommunikation zwischen dem SUT und QF-Test herzustellen, müssen der oder die Prozesse des SUT aus QF-Test heraus gestartet werden. Details zu den Hintergründen beim Starten einer Applikation und Hinweise darauf, welche Methode wann am geeignetsten ist, finden Sie in "Starten einer Applikation aus QF-Test".

Mit Hilfe der folgenden Knotentypen können Sie Programme starten, auf die Verbindung mit einem SUT Client warten, auf das Ende eines Programms warten und dessen Exitcode auswerten, sowie Prozesse "abschießen", vergleichbar mit einem kill unter Linux. Die Zahl der Prozesse, die gleichzeitig von QF-Test gestartet werden können, ist nur durch das zu Grunde liegende System begrenzt. Allerdings muss jedem aktiven Prozess ein eindeutiger Name zugewiesen werden über den ihn andere Knoten ansprechen können.

Im Weiteren werden wir von QF-Test gestartete Prozesse als Clients bezeichnen. QF-Test unterscheidet zwischen zwei Arten von Clients: Beliebigen Programmen, die dazu dienen, korrekte Randbedingungen für einen Test sicherzustellen und SUT Clients, den eigentlichen Java Applikationen, deren GUI von QF-Test ferngesteuert wird.

Die Standardein- und -ausgabekanäle eines Clients werden in ein Terminal umgeleitet, das über das »Client« Menü zugänglich ist. Die Ausgabe des Clients wird auch im Protokoll des Testlaufs gespeichert.

34.7.1 Programm starten

Um während eines Tests ein beliebiges Programm zu starten, können Sie entweder diesen Knoten, oder einen Shell-Kommando ausführen Knoten verwenden. Dieser Knoten ist vorzuziehen, wenn Sie mehrere, möglicherweise komplexe Parameter an das Programm übergeben wollen.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Keine

Ausführung: Die Kommandozeile für das Programm wird aus den Attributen zusammengesetzt und der Prozess gestartet. Ein- und Ausgabe des Programms werden umgeleitet und von QF-Test übernommen.

Attribute:

Programm starten Attribute
Abbildung 34.38:  Programm starten Attribute
Client

Dieser Name identifiziert den Client Prozess und muss eindeutig sein, so lange der Prozess läuft. Andere Knoten identifizieren den Client an Hand dieses Namens.

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

Ausführbares Programm

Das ausführbare Programm, das gestartet werden soll. Wenn sich das Programm nicht im PATH befindet, müssen Sie den vollen Pfad angeben.

Der "Datei auswählen" Button [Datei auswählen] öffnet einen Dialog, in dem Sie das Programm 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: Darf nicht leer sein

Verzeichnis

Hier können Sie das Arbeitsverzeichnis für das Programm festlegen. Wenn Sie nichts angeben, erbt das Programm das Arbeitsverzeichnis von QF-Test.

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

Hinweis Dieses Verzeichnis ist lediglich das Arbeitsverzeichnis des neu gestarteten Prozesses. Es hat keinen Einfluss auf das Arbeitsverzeichnis von QF-Test. Das hat zur Folge, dass z.B. ein Skript namens ./kopiere_daten relativ zum Arbeitsverzeichnis von QF-Test gesucht wird und nicht relativ zu diesem Verzeichnis. Erst die Pfadangaben innerhalb des Programms werden relativ zum angegebenen Verzeichnis aufgelöst.

Variabel: Ja

Einschränkungen: Muss entweder leer, oder ein existierendes Verzeichnis sein

Programm-Parameter

Hier finden Sie Die Kommandozeilenargumente für das zu startende Programm. Jeder Parameter muss in seiner eigenen Zeile stehen, Leerzeichen innerhalb eines Parameters oder Sonderzeichen müssen nicht speziell behandelt werden.

Standardmäßig werden leere Parameter ignoriert. Falls Sie explizit ein leeres Kommandozeilenargument (entsprechend '') übergeben wollen, können Sie die Option Leere Argument-Zeilen beim Start des Clients ignorieren ausschalten.

Expandiert der Wert in einer Zeile aus einer Variable zu einer Liste oder einem Array, so werden alle Elemente des Objektes als einzelne Parameter verwendet.

Näheres zur Arbeit mit den Tabellen finden Sie in "Tabellen".

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

34.7.2 Shell-Kommando ausführen

Hiermit lässt sich während eines Testlaufs auf einfache Weise ein Shell-Kommando ausführen. Die Shell zur Ausführung des Kommandos kann beim Start von QF-Test auf der Kommandozeile mittels -shell <Programm> und -shellarg <Argument> angegeben werden. Standardmäßig wird unter Linux /bin/sh verwendet, unter Windows COMMAND.COM oder cmd.exe.

Nach dem Starten der Shell wird sie wie jeder andere von QF-Test gestartete Prozess behandelt, d.h. Sie können sie beenden oder auf ihr Ende warten und den Exitcode auswerten.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Keine

Ausführung: Eine Shell wird gestartet, um das Kommando auszuführen. Ihre Ein- und Ausgabe werden umgeleitet und von QF-Test übernommen.

Attribute:

Attribute für Shell-Kommando ausführen
Abbildung 34.39:  Attribute für Shell-Kommando ausführen
Client

Dieser Name identifiziert den Client Prozess und muss eindeutig sein, so lange der Prozess läuft. Andere Knoten identifizieren den Client an Hand dieses Namens.

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

Shell-Kommando

Das Kommando, das die Shell ausführen soll. Geben Sie es genau so wie an einem Shellprompt ein.

Windows Unter Windows kann es zu Problemen beim Quoten von Argumenten mit Leerzeichen kommen. Wenn Sie die standard Windows Shell verwenden, schützen Sie die Argumente ganz normal mit Anführungsstrichen, z.B. dir "C:\Program Files". Wenn Sie dagegen mit Hilfe des Kommandozeilenarguments -shell <Programm> eine Linux-Shell unter Windows einsetzen, sollten Sie die Argumente mit Hochkommas schützen, also ls 'C:/Program Files'.

Variabel: Ja

Einschränkungen: Darf nicht leer sein

Verzeichnis

Hier können Sie das Arbeitsverzeichnis für die Shell festlegen. Wenn Sie nichts angeben, erbt die Shell das Arbeitsverzeichnis von QF-Test.

Der "Verzeichnis auswählen" Button [Verzeichnis auswählen] öffnet einen Dialog, in dem Sie das Verzeichnis 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 entweder leer, oder ein existierendes Verzeichnis 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

Android34.7.3 Android-Emulator starten

Über diesen Knoten kann man einen Android-Emulator starten und sich damit verbinden. Die Zusammenstellung der benötigten Knoten vom Emulator- bis zum App-Start mit den passenden Warten-Knoten gelingt am einfachsten über den Schnellstart Ihrer Anwendung.

Detaillierte Informationen zum Testen von Android-Anwendungen finden Sie in "Android-Anwendungen testen".

Attribute:

Android-Emulator Starter Attributes
Abbildung 34.40:  Android-Emulator starten Attribute
Client

Dieser Name identifiziert den Client Prozess und muss eindeutig sein, so lange der Prozess läuft. Andere Knoten identifizieren den Client an Hand dieses Namens.

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

Name des zu verwendenden Android-Emulators

Der Name des zu verwendenden Emulators wie er zum Beispiel im Android Virtual Device Manager in der Spalte 'Name' angezeigt wird (siehe Android Studio Dialog zeigt verfügbare AVDs). Der Emulatorname braucht hier nicht 'fest verdrahtet' werden. Er kann auch in der Variablen deviceName abgespeichert und hier über die Variable referenziert werden.

Hinweis Sollten Sie einen Emulator verwenden wollen, den Sie erst nach Start von QF-Test erstellt haben, kann es vorkommen, dass dieser noch nicht in der Drop-Down-Liste angezeigt wird. In diesem Fall können Sie den Namen direkt im Textfeld eintragen.

Variabel: Ja

Einschränkungen: Darf nicht leer sein

Programm-Parameter

Die Kommunikation zwischen QF-Test und dem Emulator erfolgt über ein Java-Programm, das zusätzlich um Emulator gestartet wird und im Hintergrund läuft. Parameter für dieses Java-Programm können hier angegeben werden. Jeder Parameter muss in seiner eigenen Zeile stehen, Leerzeichen innerhalb eines Parameters oder Sonderzeichen müssen nicht speziell behandelt werden. Beispiel: -Xmx1G, um dem Java Programm 1 GB Speicher zu geben.

Standardmäßig werden leere Parameter ignoriert. Falls Sie explizit ein leeres Kommandozeilenargument (entsprechend '') übergeben wollen, können Sie die Option Leere Argument-Zeilen beim Start des Clients ignorieren ausschalten.

Expandiert der Wert in einer Zeile aus einer Variable zu einer Liste oder einem Array, so werden alle Elemente des Objektes als einzelne Parameter verwendet.

Näheres zur Arbeit mit den Tabellen finden Sie in "Tabellen".

Variabel: Ja

Einschränkungen: Keine

Emulator-Argumente

Die Kommandozeilenargumente für den zu startenden Emulator, zum Beispiel -no-snapshot-save. Jeder Parameter muss in seiner eigenen Zeile stehen, Leerzeichen innerhalb eines Parameters oder Sonderzeichen müssen nicht speziell behandelt werden.

Standardmäßig werden leere Argumente ignoriert. Falls Sie explizit ein leeres Kommandozeilenargument (entsprechend '') übergeben wollen, können Sie die Option Leere Argument-Zeilen beim Start des Clients ignorieren ausschalten.

Expandiert der Wert in einer Zeile aus einer Variable zu einer Liste oder einem Array, so werden alle Elemente des Objektes als einzelne Parameter verwendet.

Näheres zur Arbeit mit den Tabellen finden Sie in "Tabellen".

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

Android34.7.4 Mit Android-Gerät verbinden

Über diesen Knoten kann man sich mit einem laufenden Android-Emulator oder echtem Android-Gerät verbinden. Die Zusammenstellung der benötigten Knoten von der Verbindung zum laufenden Emulator beziehungsweise echtem Android-Gerät bis zum App-Start mit den passenden Warten-Knoten gelingt am einfachsten über den Schnellstart Ihrer Anwendung.

Detaillierte Informationen zum Testen von Android-Anwendungen finden Sie in "Android-Anwendungen testen".

Attribute:

Attributes of Android-Emulator Attach Node
Abbildung 34.41:  Mit Android-Gerät verbinden Attribute
Client

Dieser Name identifiziert den Client Prozess und muss eindeutig sein, so lange der Prozess läuft. Andere Knoten identifizieren den Client an Hand dieses Namens.

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

Name des zu verwendenden Android-Gerätes

Der Name eines angeschlossenen Android-Gerätes oder des zu verwendenden Emulators. Die verfügbaren Namen werden in der Drop-Down-Liste angezeigt. Alternativ können Sie diese auch über den Menüpunkt »Laufende Android-Geräte« im Menü »Extras« herausfinden.

Der Emulator- beziehungsweise Gerätename braucht hier nicht 'fest verdrahtet' werden. Er kann auch in der Variablen deviceName abgespeichert und hier über die Variable referenziert werden.

Hinweis Sollten Sie ein echtes Android-Gerät verwenden wollen, das Sie erst nach dem Start von QF-Test angeschlossen haben, kann es vorkommen, dass dieses noch nicht in der Drop-Down-Liste angezeigt wird. In diesem Fall können Sie den Namen direkt im Textfeld eintragen. Gleiches gilt für einen Emulator, den Sie erst nach Start von QF-Test erstellt haben.

Variabel: Ja

Einschränkungen: Darf nicht leer sein

Programm-Parameter

Die Kommunikation zwischen QF-Test und dem Android-Emulator beziehungsweise echtem Gerät erfolgt über ein Java-Programm, das zusätzlich gestartet wird und im Hintergrund läuft. Parameter für dieses Java-Programm können hier angegeben werden. Jeder Parameter muss in seiner eigenen Zeile stehen, Leerzeichen innerhalb eines Parameters oder Sonderzeichen müssen nicht speziell behandelt werden. Beispiel: -Xmx1G, um dem Java Programm 1 GB Speicher zu geben.

Standardmäßig werden leere Parameter ignoriert. Falls Sie explizit ein leeres Kommandozeilenargument (entsprechend '') übergeben wollen, können Sie die Option Leere Argument-Zeilen beim Start des Clients ignorieren ausschalten.

Expandiert der Wert in einer Zeile aus einer Variable zu einer Liste oder einem Array, so werden alle Elemente des Objektes als einzelne Parameter verwendet.

Näheres zur Arbeit mit den Tabellen finden Sie in "Tabellen".

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

iOS34.7.5 Mit iOS-Gerät verbinden

Dieser Knoten verbindet QF-Test mit einem angeschlossenen oder einem simulierten iOS-Gerät. Falls notwendig, wird der Simulator ebenfalls gestartet. In QF-Test Vorbereitung Sequenz für iOS Tests ist beschrieben, wie Sie eine Sequenz erstellen können, die die Voraussetzungen für das Testsystem überprüft, die Verbindung zu einem iOS-Gerät herstellt und eine App startet. Diese Sequenz enthält auch die notwendigen Warteknoten.

Detaillierte Informationen zum Testen von iOS-Apps finden Sie in "iOS-Anwendungen testen".

Attribute:

'Connect to iOS device' attributes'
Abbildung 34.42:  Mit iOS-Gerät verbinden Attribut
Client

Dieser Name identifiziert den Client Prozess und muss eindeutig sein, so lange der Prozess läuft. Andere Knoten identifizieren den Client an Hand dieses Namens.

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

Name des (simulierten) iOS-Gerätes

Der Name eines iOS-Geräts, das an den Rechner angeschlossen ist, oder ein simuliertes iOS-Gerät. Von den verfügbaren Geräten wird dasjenige ausgewählt, dessen Name am besten mit dem hier eingetragenen übereinstimmt. Um also einen Lauf auf einem beliebigen (simulieren) iPhone auszuführen, genügt es, hier einfach den Text iPhone einzutragen.

Wenn Sie den Namen hier nicht fest verdrahten wollen, können Sie stattdessen die Variable deviceName eintragen.

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

Programm-Parameter

QF-Test kommuniziert mit dem iOS-Gerät über eine Java-basierte Controller-Applikation. Hier können Sie die Parameter für dieses Java-Programm angeben. Jeder Parameter muss in seiner eigenen Zeile stehen, Leerzeichen innerhalb eines Parameters oder Sonderzeichen müssen nicht speziell behandelt werden. Beispiel: -Xmx1G für die Zuweisung von 1 GB Speicher für das Java-Programm.

Standardmäßig werden leere Parameter ignoriert. Falls Sie explizit ein leeres Kommandozeilenargument (entsprechend '') übergeben wollen, können Sie die Option Leere Argument-Zeilen beim Start des Clients ignorieren ausschalten.

Expandiert der Wert in einer Zeile aus einer Variable zu einer Liste oder einem Array, so werden alle Elemente des Objektes als einzelne Parameter verwendet.

Näheres zur Arbeit mit den Tabellen finden Sie in Abschnitt "Tabellen".

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

34.7.6 Warten auf Client

Bei seiner Ausführung stellt dieser Knoten sicher, dass eine Verbindung zu einem bestimmten Client besteht. Ist dies nicht der Fall, wartet er eine gewisse Zeit und wirft im Fehlerfall eine ClientNotConnectedException. Das Resultat des Knotens kann auch in einer Variable mittels des Attributes Variable für Ergebnis gesetzt werden. Mit Ausschalten des Attributes Im Fehlerfall Exception werfen kann das Werfen der Exceptions unterdrückt werden.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Keine

Ausführung: QF-Test wartet, bis der Java-Client des SUT mit dem entsprechenden Namen eine RMI Verbindung herstellt oder das Timeout abgelaufen ist.

Attribute:

Warten auf CLient Attribute
Abbildung 34.43:  Warten auf Client Attribute
Client

Der Name des Java-Clients auf dessen Verbindung gewartet wird.

Variabel: Ja

Einschränkungen: Darf nicht leer sein

Wartezeit

Zeit in Millisekunden, die maximal verstreichen darf.

Variabel: Ja

Einschränkungen: >= 0

GUI-Engine

Die GUI-Engine auf die gewartet werden soll. Nur relevant für SUTs mit mehr als einer GUI-Engine wie in "GUI-Engines" beschrieben.

Variabel: Ja

Einschränkungen: Siehe "GUI-Engines"

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, 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 "Variablen".

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

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

34.7.7 Warten auf Mobil-Gerät

Bei seiner Ausführung stellt dieser Knoten sicher, dass eine Verbindung zu einem bestimmten (virtuelle/simulierte) mobilen Gerät besteht. Ist dies nicht der Fall, wartet er eine gewisse Zeit und wirft nach Ablauf der Zeit eine ClientNotConnectedException. Falls bereits vor Ablauf der Zeit erkannt wird, dass die Verbindung nicht zustande kommt, wird eine ConnectionFailureException geworfen.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Keine

Ausführung: QF-Test wartet, bis das (virtuelle/simulierte) mobile Gerät mit dem entsprechenden Namen eine Verbindung herstellt oder das Timeout abgelaufen ist.

Attribute:

Warten auf Mobil-Gerät-Attribute
Abbildung 34.44:  Warten auf Mobil-Gerät-Attribute
Client

Der Name des Android- oder iOS-Clients, auf dessen Verbindung gewartet wird.

Variabel: Ja

Einschränkungen: Darf nicht leer sein

Wartezeit

Zeit in Millisekunden, die maximal verstreichen darf.

Variabel: Ja

Einschränkungen: >= 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 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

34.7.8 Mobile-App starten

Über diesen Knoten kann man eine mobile Applikation installieren und starten. Die Zusammenstellung der benötigten Knoten vom Emulator/Simulator-Start - oder alternativ der Verbindung mit einem laufenden Android-Emulator, einem iOS-Simulator oder einem echtem Gerät - bis zum App-Start mit den passenden Warten-Knoten gelingt am einfachsten über den Schnellstart Ihrer Anwendung.

Detaillierte Informationen zum Testen von mobilen Anwendungen finden Sie in "Android-Anwendungen testen".

Attribute:

Attribute zum Starten einer mobilen Anwendung
Abbildung 34.45:  Mobile-App starten Attribute
Client

Dieser Name identifiziert den Client Prozess und muss eindeutig sein, so lange der Prozess läuft. Andere Knoten identifizieren den Client an Hand dieses Namens.

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

Pfad zur APK/APP/IPA-Datei

Der Pfad zu der zu verwendenden Android- oder iOS-App. Um einen Pfad relativ zur Testsuite anzugeben, nutzen Sie am besten die Variable ${qftest:suite.dir} verwenden, siehe "Spezielle Gruppen". Beispiel: ${qftest:suite.dir}/apps/myapp.apk.

Falls die App vorinstalliert ist und die .apk/.app/.ipa-Datei nicht verfügbar ist, kann die App alternativ über die Attribute Package / Bundle-ID und Activity (nur für Android) gestartet werden.

Variabel: Ja

Einschränkungen: Darf nicht leer sein

Neuinstallation der App erzwingen

Wenn Sie das Attribut selektieren, wird die App auf jeden Fall neu installiert, egal, ob bereits eine Installation der App auf dem Emulator/Simulator oder dem echten Gerät vorhanden ist.

Hinweis Diese Aktion löscht nicht zwingend vorhandene Einstellungen und Daten der App. Dies ist abhängig davon, wo die Daten und Einstellungen der App gespeichert werden.

Variabel: Nein

Einschränkungen: Keine

Die App starten

Attribut selektieren, um die Applikation zu starten.

Variabel: Nein

Einschränkungen: Keine

Package / Bundle-ID

Der Package-Name der zu startenden Android-App oder die BundleId der zu startenden iOS-App. Wird nur für den Sonderfall benötigt, dass die .apk/.app/.ipa-Datei nicht im Attribut Pfad zur APK/APP/IPA-Datei angegeben werden kann. Zusätzlich muss für Android dann auch das Attribut Activity (nur für Android) gesetzt werden. Das Package kann über die Android Debug Bridge ermittelt werden. Alternativ können zunächst nur den Emulator starten oder sich mit einem echten Gerät oder laufenden Emulator verbinden. Wenn Sie nun die App manuell starten, können Sie eine Komponente aufnehmen. Dann wird das Package in den Attributen des obersten Knotens der Komponentenhierarchie abgespeichert.

Variabel: Ja

Einschränkungen: Keine

Activity (nur für Android)

Der Activity-Name der zu startenden Android-App. Wird nur für den Sonderfall benötigt, dass die .apk-Datei nicht im Attribut Pfad zur APK/APP/IPA-Datei angegeben werden kann. Zusätzlich muss dann auch das Attribut Package / Bundle-ID gesetzt werden. Die Activity kann über die Android Debug Bridge ermittelt werden.

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

34.7.9 Programm beenden

Hiermit kann ein Prozess, der von QF-Test gestartet wurde, beendet werden. Sollte sich der Prozess bereits selbst beendet haben, ändert sich nichts. Andernfalls versucht QF-Test im Fall eines SUT Clients zunächst, die Applikation durch Aufruf der Java-Methode System.exit(-1) zu beenden. Ist der Client kein SUT Client oder anschließend immer noch nicht beendet, wird der Prozess "abgeschossen" und erhält einen Exitcode von -1.

WindowsAchtung: Unter Windows werden Kindprozesse nicht beendet, wenn der Vaterprozess abgeschossen wird. Wie in "Starten einer Applikation aus QF-Test" beschrieben, startet QF-Test das SUT über einige Umwege. Wenn das SUT sich nicht mit System.exit(-1) beenden lässt, kann das zu "herrenlosen" Prozessen führen, die nach und nach das System blockieren.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Keine

Ausführung: Schießt den Prozess ab, der unter dem entsprechenden Namen gestartet wurde.

Attribute:

Programm beenden Attribute
Abbildung 34.46:  Programm beenden Attribute
Client

Der Name unter dem der Prozess, der abgeschossen werden soll, gestartet wurde.

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

34.7.10 Warten auf Programmende

Hiermit kann auf das Ende eines Prozesses, der von QF-Test gestartet wurde, gewartet werden. Terminiert der Prozess nicht innerhalb des vorgegebenen Timeouts, wird eine ClientNotTerminatedException ausgelöst. Andernfalls wird der Exitcode des Prozesses ermittelt und kann mit einem vorgegebenen Wert verglichen werden. Das Resultat des Knotens kann auch in einer Variable mittels des Attributes Variable für Ergebnis gesetzt werden. Mit Ausschalten des Attributes Im Fehlerfall Exception werfen kann das Werfen der Exceptions unterdrückt werden.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Keine

Ausführung: Wartet auf das Ende des Prozesses, der unter dem entsprechenden Namen gestartet wurde und prüft dessen Exitcode.

Attribute:

Warten auf Programmende Attribute
Abbildung 34.47:  Warten auf Programmende Attribute
Client

Der Name unter dem der Prozess, auf dessen Ende gewartet werden soll, gestartet wurde.

Variabel: Ja

Einschränkungen: Darf nicht leer sein

Wartezeit

Zeit in Millisekunden, die maximal verstreichen darf.

Variabel: Ja

Einschränkungen: >= 0

Erwarteter Exitcode

Ist dieses Attribut gesetzt, wird nach dem Ende des Prozesses dessen Exitcode ausgewertet und mit diesem Wert verglichen. Die Art des Vergleichs wird durch einen der vier Operatoren ==, !=, < und > festgelegt, die dem Wert vorangestellt werden können. Ohne Operator wird auf Gleichheit geprüft. Scheitert die Prüfung, wird eine TestException ausgelöst.

Beispiele: Wird als Attributwert 0 angegeben, so führt jeder andere Exitcode als 0 zu einem Fehler. Dies entspricht der Angabe ==0. Bei einem Wert von >0 löst entsprechend jeder Exitcode kleiner oder gleich 0 eine Exception aus.

Variabel: Ja

Einschränkungen: Siehe oben

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, 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 "Variablen".

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

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