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