GUI Connection Management

Aus expecco Wiki (Version 2.x)
Zur Navigation springen Zur Suche springen

Einführung[Bearbeiten]

Bei den Bausteinen einer Bibliothek für eine GUI-Technologie ist in der Regel keine Angabe der zu verwendenden Verbindung erforderlich. Stattdessen wird eine bestehende Verbindung verwendet. Innerhalb des Ablaufs eines Testplans können jedoch mehrere Verbindungen verwendet werden. Diese Seite erklärt, wie Sie festlegen können, wann welche Verbindung verwendet werden soll.

Expecco verwendet ein zweistufiges System, um festzustellen, welche Verbindung verwendet werden soll. Zum einen gibt es die Variablenumgebung des Bausteins, der gerade ausgeführt wird. Dort kann eingetragen werden, welche Verbindung verwendet werden soll. Dies geschieht in der Regel automatisch beim Verbindungsaufbau und kann über entsprechende Bausteine geändert werden. Diese Möglichkeit kommt daher in der Regel innerhalb von Testläufen zum Tragen, in denen der Verbindungsaufbau integriert ist. Sind keine Informationen in der Variablenumgebung vorhanden, wird die zuletzt ausgewählte Verbindung verwendet. Dies kann über den GUI-Browser gesteuert werden und wird z.B. bei der Ausführung einzelner Bausteine verwendet.

Variablenumgebung[Bearbeiten]

Insbesondere wenn mehrere Verbindungen gleichzeitig verwendet werden, kann über die Variablenumgebung festgelegt werden, welche Verbindung gerade aktiv sein soll. Jede Technologie hat einen festen Namen, unter dem ein sogenannter Test-Runner in der Umgebung abgelegt wird, sowie einen Namen, unter dem der Name der aktuellen Verbindung abgelegt wird. Der Test-Runner hat eine Zuordnung von Verbindungsnamen zu der jeweiligen tatsächlichen Verbindung.

Für jede verwendete Technologie wird bei Bedarf ein entsprechender Test-Runner erzeugt und in der Variablenumgebung abgelegt, um wieder darauf zugreifen zu können. Beim Verbindungsaufbau über einen entsprechenden Baustein wird dann in diesem Test-Runner die Verbindung mit ihrem Namen angelegt.

Zum Setzen der aktiven Verbindung gibt es in den Bibliotheken Bausteine mit Namen wie Set Current Connection, Set Connection Scope oder ähnlich. Diese Bausteine schreiben den Namen der Verbindung in die Variablenumgebung. Ein normaler Aktionsbaustein holt nun den Namen der aktiven Verbindung und den Test-Runner für die Technologie, zu der er gehört, aus der Umgebung und weiß somit, welche Verbindung er verwenden soll. Wenn die Variablenumgebung keine Informationen darüber enthält, wird stattdessen die Verbindung verwendet, die zuletzt im GUI-Browser ausgewählt wurde. Das Abbauen einer Verbindung über ihren Namen erfolgt ebenfalls über die Zuordnung des Test-Runners.

Die Namen der Umgebungsvariablen für die jeweiligen Technologien sind:

Technologie Variable für den Test-Runner Variable für die aktive Verbindung
Mobile Testing MOBILE_TESTING_TEST_RUNNER CURRENT_MOBILE_TESTING_CONNECTION
Java SWING_TEST_RUNNER CURRENT_SWING_CONNECTION
Selenium WebDriver SELENIUM_TEST_RUNNER CURRENT_SELENIUM_CONNECTION
WindowsAutomation2 WINDOWS_AUTOMATION_CONNECTION_MANAGER CURRENT_WINDOWS_AUTOMATION_CONNECTION

Diese Variablen werden automatisch in der Ausführungsumgebung erstellt, d.h. sie sind während der gesamten Ausführung gültig, verschwinden aber nach Beendigung der Ausführung. Sie können eine Variable mit einem solchen Namen auch in der Umgebung eines Testplans oder eines Bausteins anlegen. In diesem Fall wird dort und in allen untergeordneten Bausteinen eine eigene Version verwendet. Dies erleichtert das parallele Arbeiten mit zwei Verbindungen.

Beispiel 1: Denselben Ablauf auf zwei Verbindungen parallel ausführen
Definieren Sie in zwei Bausteinen jeweils die Umgebungsvariable für die aktive Verbindung. Setzen Sie dann in den Bausteinen jeweils eine andere aktive Verbindung und führen Sie darin den Baustein mit dem gewünschten Ablauf aus. Beide Bausteine können nun parallel ausgeführt werden und verwenden dabei jeweils ihre eigene Verbindung.
Beispiel 1: Test Sequence ist derselbe Bausteine in beiden Läufen, verwendet aber verschiedene Verbindungen (bzw. Verbindungsnamen).


Beispiel 2: Denselben Test mehrmals parallel ausführen
Wenn die Namen der Verbindungen bereits in dem Teil festgelegt sind, der parallel ausgeführt werden soll, können stattdessen auch mehrere Test-Runner verwendet werden. Legen Sie dazu im Test die Umgebungsvariable für den Test-Runner an. Wenn der Test nun parallel ausgeführt wird, verwendet jeder seine eigene Instanz des Test-Runners und es gibt keinen Konflikt bei identischen Verbindungsnamen.
Beispiel 2: Test Sequence ist derselbe Baustein in beiden Läufen, verwendet aber unterschiedliche Test-Runner mit identischen Namen für die jeweilige Verbindung.


GUI-Browser[Bearbeiten]

Beim Erstellen oder Bearbeiten von Testsuiten ist der GUI-Browser sehr hilfreich. Mit ihm können neue Verbindungen angelegt, alle aktiven Verbindungen angezeigt und Testsequenzen erstellt oder bearbeitet werden, z.B. über den jeweiligen Recorder der entsprechenden Technologie.

Im GUI-Browser können einzelne Bausteine ausgeführt werden. Dabei wird die links ausgewählte Verbindung verwendet. Generell wird durch die Auswahl einer geöffneten Verbindung im GUI-Browser diese als aktuelle Verbindung festgelegt. Sie wird dann verwendet, wenn in der Umgebung eines ausgeführten Bausteins keine anderen Informationen enthalten sind.

Common UI Bausteine[Bearbeiten]

Es gibt Bausteine, die theoretisch mit jeder Technologie verwendet werden können. Diese sind in der Common GUI Library zu finden. Diese verwenden einen eigenen Test-Runner, der die Verbindungen für alle verwendeten Technologien kennt. Für diesen werden die folgenden Umgebungsvariablen verwendet:

Variable für den Test-Runner Variable für die aktive Verbindung
Master TestRunner MASTER_TEST_RUNNER CURRENT_MASTER_CONNECTION

Ab expecco 22.2 wird auch immer die aktuelle Verbindung des Master-Test-Runners gesetzt, wenn über einen Technologie-Baustein die aktuelle Verbindung geändert wird. Gleiches gilt für die Auswahl einer Verbindung im GUI-Browser.

Vorsicht bei parallelen Verbindungen[Bearbeiten]

Wenn Ihr Test nur eine Verbindung verwendet, macht es keinen Unterschied, ob Sie Common UI Bausteine oder Bausteine aus der Technologie-Bibliothek verwenden. Bei mehreren Verbindungen müssen Sie jedoch vorsichtig sein! Da die Common UI Bausteine nicht wissen, welche Technologie verwendet werden soll, müssen Sie darauf achten, dass die richtige Verbindung gesetzt ist, wenn Sie zwei verschiedene Technologien parallel verwenden. Wenn Sie Technologie-Bausteine verwenden, haben Sie hier keine Probleme, da für die verschiedenen Technologien unterschiedliche Test-Runner und Umgebungsvariablen verwendet werden.



Copyright © 2014-2024 eXept Software AG