Handbuch

40
Starten einer Applikation aus QF-Test

HinweisDer Schnellstart-Assistent ist das empfohlene Werkzeug, um Ihre Anwendung als SUT einzurichten. Als Resultat wird eine erweiterte Startsequenz erzeugt, die auch bereits für spätere Anforderungen vorbereitet ist.

Diese Kapitel enthält notwendige Details, falls die Startsequenz "von Hand" erzeugt werden soll.

40.1
Verschiedene Methoden zum Starten des SUT

Mit dem Schnellstart Wizard bietet QF-Test ein Hilfsmittel, um Sie Schritt für Schritt durch den Prozess zur Erstellung einer Startsequenz für Ihr SUT zu leiten. Informationen zum Schnellstart Wizard finden Sie im Kapitel Kapitel 3.

Trotzdem soll hier auch der "händische" Weg erklärt werden, wie Sie einen Startknoten für Ihr SUT erstellen können. Es gibt im Wesentlichen zwei Methoden zum Start einer Java Anwendung aus QF-Test als SUT. Die erste entspricht einem normalen java ... Aufruf über die Kommandozeile, wobei es dabei Varianten zum Start einer Klasse oder einer jar Datei gibt. Die Alternative ist ein Skript oder ein ausführbaren Programm, das dann die Java VM startet. Indirekte Methoden wie der Start des SUT über ant fallen ebenso in diese Kategorie wie Java WebStart und Applets, die im Java Plugin eines Web Browsers ausgeführt werden.

Im Folgenden werden einige typische Konstellationen beispielhaft erläutert. Für nähere Informationen zu den auszufüllenden Werten folgen Sie bitte den entsprechenden Verweisen in den Referenzteil. Das Tutorial enthält weitere Beispiele zu diesem Thema.

Unabhängig davon wie Sie das SUT starten, der jeweilige Knoten sollte normalerweise direkt von einem 'Warten auf Client' Knoten mit identischem 'Client' Attribut gefolgt werden. Auch hierzu finden Sie weiterführende Informationen im Referenzteil.

40.1.1
Starten des SUT aus einem Skript oder ausführbaren Programm

Wird Ihre Anwendung im Normalfall durch ein Skript oder ein ausführbares Programm gestartet, erstellen Sie einen 'SUT Client starten' Knoten wie folgt:

Starten des SUT aus einem                Skript oder ausführbaren Programm
Abbildung 40.1:  Starten des SUT aus einem Skript oder ausführbaren Programm
  • Fügen Sie einen 'SUT Client starten' Knoten ein.
  • Geben Sie dem SUT im 'Client' Attribut einen Namen.
  • Setzten Sie das Attribut 'Ausführbares Programm' auf das Skript oder das Programm, mit dem das SUT gestartet wird. Wenn sich das Skript oder Programm nicht auf dem PATH befindet, muss es mit vollem Pfad angegeben werden.
  • Legen Sie im 'Verzeichnis' Attribut das Arbeitsverzeichnis der Anwendung fest.
  • Im Falle eines Skripts sollten Sie eine eventuell vorhandene Ausgabeumleitung (z.B. >ausgabe.log) beim java Aufruf entfernen, damit die Ausgabe bei QF-Test ankommt und im Protokoll aufgezeichnet werden kann. Ebenso behindert unter Windows ein vorangestellter start Befehl das Aufzeichnen der Ausgaben des SUT.
40.1.2
Starten des SUT mittels Java WebStart

Mit dem neuen Verbindungsmechanismus kann das SUT mittels Java WebStart direkt über QF-Test gestartet werden, ohne dass Änderungen am JNLP Deskriptor nötig sind (verwenden Sie also nicht »Extras«-»WebStart SUT Client Starter erstellen...«). Erstellen Sie stattdessen direkt einen 'SUT Client starten' Knoten wie folgt:

Starten des SUT mittels Java WebStart
Abbildung 40.2:  Starten des SUT mittels Java WebStart
  • Fügen Sie einen 'SUT Client starten' Knoten ein.
  • Geben Sie dem SUT im 'Client' Attribut einen Namen.
  • Setzten Sie das Attribut 'Ausführbares Programm' auf das Java WebStart Programm. Dieses heißt normalerweise javaws und befindet sich innerhalb des JDK oder JRE. Sie werden vermutlich den vollständigen Pfad angeben müssen.
  • Für Java WebStart ist das 'Verzeichnis' Attribut normalerweise ohne Bedeutung. Allerdings sucht Java WebStart beim Start in diesem Verzeichnis nach der Datei .javaws, in der zum Beispiel Einstellungen zu Debugging Ausgaben vorgenommen werden können.
  • Erstellen Sie in der 'Programm-Parameter' Tabelle für das Programm eine Zeile mit der URL für den JNLP Deskriptor der Anwendung.
40.1.3
Starten des SUT als Applet in einem Web Browser

Applets können direkt im Browser getestet werden.

Hinweis Wenn Sie eine Lizenz besitzen, die auch Webtesten mit QF-Test erlaubt, und die, für Webtesten aktuell unterstützten Browser für Ihre Applet-Tests genügen, können Sie auch wie beim "normalen" Webtesten (Schnellstart Ihrer Anwendung) vorgehen.

Starten des SUT als Applets im Web Browser
Abbildung 40.3:  Starten des SUT als Applet in einem Web Browser
  • Fügen Sie einen 'SUT Client starten' Knoten ein.
  • Geben Sie dem SUT im 'Client' Attribut einen Namen.
  • Setzten Sie das Attribut 'Ausführbares Programm' auf den Browser, den Sie starten wollen, z.B. firefox, iexplore, chrome oder Safari, um nur einige zu nennen. Eventuell müssen Sie den vollständigen Pfad angeben.
  • Für das Starten des Applets ist das 'Verzeichnis' Attribut normalerweise ohne Bedeutung.
  • Erstellen Sie in der 'Programm-Parameter' Tabelle für das Programm eine Zeile mit der URL für die Webseite des Applets.

HinweisWichtige Hinweise zum Testen von Java Applets

Das Testen von Applets arbeitet nur verlässlich wenn

  • ein neuer Browser-Prozess gestartet wird,
  • keine Dialoge (wie Sitzungswiederherstellung oder Rückfragen wegen Standardbrowser) den Start des Browser blockieren,
  • auf Windows 8 der Browser als Desktop-Anwendung und nicht als Modern UI (ehemals Metro) Applikation läuft

Die Prozedur qfs.web.browser.general.startAsNewProcess, die auch Verwendet wird, wenn der Schnellstart-Assistent für die Erstellung der Startsequenz genutzt wird, sollte die ersten beiden Punkte sicher stellen. Sie nutzt browserspezifische Parameter, um einen neuen Prozess zu erzwingen und leere Profile, um blockierende Dialoge zu vermeiden.

WindowsUnter Windows 8 gibt es folgende Möglichkeiten den Internet Explorer zu veranlassen, als Desktop-Anwendung zu starten.

  • Man setzt einen anderen Browser als Standardbrowser
  • oder setzt in den Browsereinstellungen die Option »Internetoptionen«-»Programme«-»Wählen Sie aus, wie Links geöffnet werden sollen« auf "Immer mit Internet Explorer auf dem Desktop".
  • oder setzt direkt den entsprechenden Registry-Eintrag

    HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\AssociationActivationMode
    auf den Wert 2.

    0 = Internet Explorer entscheiden lassen
    1 = Immer mit Internet Explorer (das ist der Metro IE)
    2 = Immer mit Internet Explorer auf dem Desktop

Weitere Hintergrundinformationen

Wie oben beschrieben, hilft die Prozedur qfs.web.browser.general.startAsNewProcess einen neuen Prozess zu erzwingen. Jedoch soll hier kurz auf einige der verwendeten Techniken eingegangen werden. Sie können aber auch direkt in den Code der Prozedur schauen.

WindowsEs gibt verschiedene Browser spezifische Kommandozeilenparameter für den Internet Explorer:

  • IE6: -new
  • IE7: -new (Standard)
  • IE8 und neuer: -noframemerging

(Siehe auch http://msdn.microsoft.com/en-us/library/hh826025%28v=vs.85%29.aspx). Das Verhalten kann auch über die Registry erzwungen werden, jedoch ist die Steuerung per Kommandozeile weniger invasiv.

Hinweis Browser oder auch das Java Plugin selbst warnen ggf. bei einem neuen oder veralteten JRE. Falls Sie nicht immer das neueste JRE für Ihre Tests nutzen können oder wollen, ist es möglich die blockierenden Dialoge zu vermeiden. Das JRE sollte entsprechende Möglichkeiten in seinen Einstellungen bieten. Für Google Chrome können Sie die zusätzlichen Kommandozeilenparameter --always-authorize-plugins und --allow-outdated-plugins nutzen. Für Firefox gibt es unter http://mzl.la/MN0qiT entsprechende Hinweise.

Hinweis Firefox hat eine eingebaute Funktion zur Wiederherstellung von Sessions, die zu Konflikten mit QF-Test führt. Wenn QF-Test ein Applet und damit den Browser beendet, wird dies von Firefox als Absturz gewertet. Beim nächsten Start öffnet Firefox einen Dialog in dem angeboten wird, die letzte Session fortzusetzen. Dieser Dialog kann von QF-Test nicht kontrolliert werden, so dass der Test nicht unbeaufsichtigt fortgesetzt werden kann.

Um dieses Problem zu umgehen kann man entweder immer mit einem leeren Profil starten oder ein neues Benutzerprofil anlegen, wie unter http://kb.mozillazine.org/Profile_Manager beschrieben. Dann starten Sie Firefox aus QF-Test immer mit diesem Benutzerprofil. Verwenden Sie hierzu den Befehl firefox -P <Profile>. Schalten Sie anschließend das Wiederherstellen der Sitzung für dieses Profil aus. Dazu editieren Sie wie unter http://kb.mozillazine.org/Editing_configuration beschrieben die Benutzereinstellungen. Sie müssen eine Option namens browser.sessionstore.resume_from_crash anlegen und diese auf false setzen.

40.1.4
Starten des SUT mittels java -jar <Archiv>

Wird Ihre Anwendung im Normalfall durch ein Kommando der Form java -jar <Archiv> gestartet, erstellen Sie einen 'Java SUT Client starten' Knoten wie folgt:

Starten des SUT aus einem             jar Archiv
Abbildung 40.4:  Starten des SUT aus einem jar Archiv
  • Fügen Sie einen 'Java SUT Client starten' Knoten ein.
  • Geben Sie dem SUT im 'Client' Attribut einen Namen.
  • Wenn nötig, ändern Sie das Attribut 'Ausführbares Programm'. Sein Standardwert ${qftest:java} ist das java Programm mit dem QF-Test gestartet wurde.
  • Legen Sie im 'Verzeichnis' Attribut das Arbeitsverzeichnis der Anwendung fest.
  • Erstellen Sie zwei Zeilen in der 'Programm-Parameter' Tabelle für das Programm. Setzen Sie die erste Zeile auf -jar und die zweite auf den Namen des jar Archivs. Die Angabe des vollen Pfades ist nötig, wenn sich das Archiv nicht im oben angegebenen 'Verzeichnis' befinden sollte.
40.1.5
Starten des SUT mittels java -classpath <Pfad> <Startklasse>

Wird Ihre Anwendung im Normalfall durch ein Kommando der Form java -classpath <Pfad> <Startklasse> gestartet, erstellen Sie einen 'Java SUT Client starten' Knoten wie folgt:

Starten des SUT über die                Startklasse
Abbildung 40.5:  Starten des SUT über die Startklasse
  • Fügen Sie einen 'Java SUT Client starten' Knoten ein.
  • Geben Sie dem SUT im 'Client' Attribut einen Namen.
  • Wenn nötig, ändern Sie das Attribut 'Ausführbares Programm'. Sein Standardwert ${qftest:java} ist das java Programm, mit dem QF-Test gestartet wurde.
  • Legen Sie im 'Verzeichnis' Attribut das Arbeitsverzeichnis der Anwendung fest.
  • Setzen Sie das Attribut 'Klasse' auf den vollen Namen der Startklasse (die Klasse mit der main() Methode), so wie er auch für das java Kommando angegeben wird.
  • Erstellen Sie zwei Zeilen in der 'Programm-Parameter' Tabelle für das Programm. Setzen Sie die erste Zeile auf -classpath und die zweite auf die Liste der jar Archive und Verzeichnisse, aus denen sich der Classpath zusammensetzt. Für jar Archive, die sich nicht im oben angegebenen 'Verzeichnis' befinden, muss dabei der volle Pfad angegeben werden. Dieses Argument kann sehr lang werden und ist dadurch nur mühsam direkt in der Tabelle zu editieren. In Abschnitt 2.2.5 ist beschrieben, wie Sie komfortabel in einem Dialog arbeiten können.
Web40.1.6
Starten einer Webanwendung im Browser

Wie bei Swing, JavaFX und SWT wird der Browser für ein Web-SUT als separater Prozess aus QF-Test heraus gestartet. Um Zugriff auf die Interna des Browsers und die darin dargestellte Webseite mit ihrem Document Object Model (DOM) zu erhalten, bettet QF-Test standard Browser wie Internet Explorer und Mozilla in eine eigene Hülle ein. Die Technologie zur Einbettung und für den Zugriff auf die Browser zeichnet sich aus durch besonders effizienten Zugriff auf das DOM, weit über die üblichen Browser-Schnittstellen hinaus und bietet dafür eine einheitliche Schnittstelle, welche die Unterschiede zwischen den Browsern versteckt. Dies ermöglicht QF-Test - und damit Ihnen - eine Anwendung in allen unterstützten Browsern und auf mehreren Plattformen mit nur einem Satz von Tests zu automatisieren.

Starten einer Webanwendung im Browser
Abbildung 40.6:  Starten einer Webanwendung im Browser

Ein Browser wird mit Hilfe eines 'Web-Engine starten' Knotens gestartet. Die zu testende Webseite kann danach über einen 'Browser-Fenster öffnen' Knoten geöffnet werden.

Hinweis Beim Erstellen Ihrer Startsequenz mit dem Schnellstart-Assistenten - oder beim manuellen Setzen des Attributs 'Verzeichnis der Browser-Installation' - versuchen Sie QF-Test auf eine aktuelle Firefox oder SeaMonkey Installation zu verweisen. Unter Linux kann der Standard-Browser Ihrer Installation an verschiedenen Orten installiert sein.

40.1.7
Öffnen eines PDF Dokuments

4.2+ QF-Test bietet die Möglichkeit, PDF Dokumente zu überprüfen. Dazu wird ein Client als separater Prozess aus QF-Test heraus gestartet. Um Zugriff auf die Interna des PDF Dokuments und die darin dargestellten Objekte zu erhalten, analysiert QF-Test das PDF Dokument in seinem eigenen Viewer.

Öffnen eines PDF Dokuments
Abbildung 40.7:  Öffnen eines PDF Dokuments

Mit Hilfe des 'PDF Client starten' Knotens wird der Viewer gestartet und das PDF Dokument geöffnet.

Ausführliche Informationen finden Sie in Kapitel 15.