GUI-Engines
Swing, JavaFX und SWT können zusammen in einer Anwendung kombiniert werden, nicht nur in Form von getrennten Fenstern, sondern auch durch Einbettung von Komponenten der einen in Fenstern der anderen Art. QF-Test unterstützt das Testen solcher gemischten Anwendungen.
4+ Auch Webseiten können in Java-Anwendungen mit Hilfe von eingebetteten Browsern, wie der WebView Komponente bei JavaFX oder dem JxBrowser, integriert werden. QF-Test unterstützt diverse Kombinationen solcher hybriden Anwendungen.
Zu diesem Zweck wurde das Konzept einer GUI-Engine eingeführt. Eine GUI-Engine ist für Aufnahme und Wiedergabe in einem GUI Toolkit Thread zuständig. Normale Anwendungen haben nur einen solchen Thread. Wie oben beschrieben, sind aber auch Kombinationen von Swing, JavaFX und SWT möglich, die je einen eigenen Thread benötigen und somit auch zwei GUI Engines. Theoretisch ist es sogar möglich, mehrere GUI-Engines der selben Art zu haben, z.B. wenn mehrere Instanzen der SWT Display Klasse erzeugt werden.
Hinweis Die erste GUI-Engine, die in einem SUT erzeugt wird, heißt auch Default-Engine. Sie wird immer dann verwendet, wenn keine GUI-Engine explizit angegeben wird, insbesondere bei SUT-Skript Knoten mit leerem GUI-Engine Attribut.
Jede GUI-Engine wird in QF-Test über ein Kürzel für das GUI Toolkit und eine Zahl
identifiziert. awt0
, fx0
und swt0
sind die primären
Engines für AWT/Swing, JavaFX und SWT. Wenn Sie nicht eine sehr spezielle
Anwendung haben wird es niemals eine Engine namens awt1
, fx1
oder
swt1
geben, so dass die Bezeichnung awt
, fx
bzw. swt
normalerweise ausreicht. Beim Aufnehmen verwendet QF-Test immer die kurze Variante.
Hinweis Wenn Ihre
Anwendung nur die Default-Engine benutzt, können Sie auf Engine Namen ganz
verzichten, oder diese explizit über das Kürzel default
adressieren.
Im Regelfall werden Engine Namen während der Aufnahme automatisch richtig gesetzt. Nur wenn Knoten händisch eingefügt werden, ist auf das richtige Eintragen zu achten. In einer Testsuite kommen Engine Namen in folgenden Knoten vor:
- Warten auf Client Knoten. Wird nur benötigt wenn Ihre Anwendung AWT/Swing, JavaFX und SWT kombiniert und Sie auf die Initialisierung einer spezifischen GUI-Engine warten wollen.
- Fenster Knoten. Die Engine eines Fenster Knotens ordnet das Fenster und alle entsprechenden Knoten der jeweiligen Engine zu. Eingebettete Komponenten der jeweils anderen Art werden in einen Knoten für ein Pseudo-Fenster ausgelagert.
- SUT-Skript Knoten. Ein SUT-Skript wird auf dem Event Thread des SUT ausgeführt. Für eine kombinierte AWT/Swing, JavaFX und/oder SWT-Anwendung muss daher festgelegt werden, ob das Skript auf dem AWT/Swing, JavaFX oder dem SWT Thread laufen soll. Daher kann ein SUT-Skript Knoten nur Komponenten einer Art ermitteln und mit ihnen interagieren.
-
Dateiauswahl Knoten. Für Swing-Anwendungen wird der Dateiauswahl Knoten
nur selten benötigt, da der Swing
JFileChooser
in Java implementiert ist und vollständig von QF-Test angesteuert werden kann. Der SWTFileDialog
ist dagegen analog zum AWTFileChooser
auf Betriebssystem Ebene implementiert, so dass QF-Test keinen Zugriff auf die Komponenten innerhalb des Dialogs hat. Auch der JavaFXFileChooser
bedarf besonderer Behandlung. Daher muss das Auswählen einer Datei mit Hilfe eines Dateiauswahl Knotens simuliert werden. Da dieser Knoten nicht explizit mit einem Komponente oder Fenster Knoten assoziiert ist, muss die Engine im Knoten angegeben werden.