GUI Connection Management: Unterschied zwischen den Versionen

Aus expecco Wiki (Version 2.x)
Zur Navigation springen Zur Suche springen
 
(4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
= Einführung =
= Einführung =
Die Bausteine einer Bibliothek für eine GUI-Technologie funktionieren in der Regel, ohne dass die zu verwendende Verbindung angegeben werden muss. Stattdessen wird eine vorhandene Verbindung verwendet. Innerhalb des Ablaufs eines Testplans können aber mehrere Verbindungen verwendet werden. Diese Seite erklärt Ihnen, wie man festlegen kann, wann welche Verbindung verwendet werden soll.
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 ausgeführt wird. Dort kann eingetragen sein, welche Verbindung genutzt werden soll. Dies wird in der Regel automatisch beim Verbindungsaufbau gemacht und kann über entsprechende Bausteine geändert werden. Diese Möglichkeit greift also üblicherweise innerhalb von Testläufen, bei denen der Verbindungsaufbau integriert ist. Gibt es keine Informationen in der Variablenumgebung, wird die zuletzt ausgewählte Verbindung verwendet. Das lässt sich über den GUI-Browser steuern und wird zum Beispiel verwendet, wenn einzelne Bausteine ausgeführt werden.
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 =
= Variablenumgebung =
Besonders wenn mehrere Verbindungen gleichzeitig verwendet werden, kann über die Variablenumgebung festgelegt werden, welche Verbindung verwendet werden soll. Jede Technologie hat einen fest definierten Namen, unter dem ein sogenannter Test-Runner in der Umgebung abgelegt wird, und einen Namen, unter dem der Name der aktuellen Verbindung abgelegt wird. Der Test-Runner hat eine Zuordnung von Verbindungsnamen zur jeweils tatsächlichen Verbindung.
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 auf ihn zurückgreifen zu können. Beim Verbindungsaufbau über einen entsprechenden Baustein, wird in diesem Test-Runner dann die Verbindung mit ihrem Namen angegeben.
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.


Um die aktive Verbindung festzulegen, gibt es in den Bibliotheken Baustein, die ''Set Current Connection'', ''Set Connection Scope'' oder ähnlich heißen. Hierbei wird der Name der Verbindung in die Variablenumgebung geschrieben. Ein normaler Aktionsbaustein wird nun den Namen der aktiven Verbindung und den Test-Runner für die Technologie, zu der er gehört, auslesen und weiß so, welche Verbindung verwendet werden soll. Steht dazu keine Information in der Variablenumgebung, wird stattdessen die letzte Verbindung verwendet, die im GUI-Browser ausgewählt wurde. Das Abbauen einer Verbindung über deren Namen geschieht ebenfalls über die Zuordnung des Test-Runners.
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:
Die Namen der Umgebungsvariablen für die jeweiligen Technologien sind:
Zeile 25: Zeile 25:
|}
|}


Diese Variablen werden automatisch in der Ausführungsumgebung angelegt, gelten also für eine gesamte Ausführung, sind aber auch wieder weg, nachdem die Ausführung beendet wurde. Sie können aber auch eine Variable mit einem solchen Namen in der Umgebung eines Testplans oder Bausteins anlegen. In diesem Fall wird diese dann verwendet. Damit wird es einfacher, in einer Ausführung auf zwei Verbindungen parallel zu arbeiten.
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:''' Auf zwei Verbindungen soll derselbe Ablauf parallel ausgeführt werden
;'''Beispiel 1:''' Denselben Ablauf auf zwei Verbindungen parallel ausführen
:Legen Sie in zwei Bausteinen jeweils die Umgebungsvariable für die aktive Verbindung an. Setzen Sie dann in den Bausteinen jeweils eine andere aktive Verbindung und führen Sie dann darin den Baustein mit dem gewünschten Ablauf aus. Beide Bausteine können nun parallel ausgeführt werden und verwenden dabei ihre eigene Verbindung.
: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.
:[[Datei:ParallelGUIConnections1.png|mini|800px|links|Beispiel 1: ''Test Sequence'' ist derselbe Bausteine in beiden Läufen, verwendet aber verschiedene Verbindungen (bzw. Verbindungsnamen).]]

<br clear=all>
;'''Beispiel 2:''' Derselbe Test soll mehrmals parallel ausgeführt werden
;'''Beispiel 2:''' Denselben Test mehrmals parallel ausführen
:Wenn die Benennung der Verbindungen bereits in dem Teil liegt, 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. Wird der Test nun parallel ausgeführt, verwendet jeder seine eigene Instanz des Test-Runners und es gibt keinen Konflikt bei Gleichheit der Verbindungsnamen.
: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.
:[[Datei:ParallelGUIConnections2.png|mini|578px|links|Beispiel 2: ''Test Sequence'' ist derselbe Baustein in beiden Läufen, verwendet aber unterschiedliche Test-Runner mit identischen Namen für die jeweilige Verbindung.]]
<br clear=all>


= GUI-Browser =
= GUI-Browser =
Beim Erstellen oder Bearbeiten von Testsuiten ist der GUI-Browser sehr hilfreich. Mit diesem können neue Verbindungen erstellt werden, hier werden alle aktiven Verbindungen angezeigt und es können Testsequenzen erstellt oder bearbeitet werden, zum Beispiel über den jeweiligen Recorder der entsprechenden Technologie.
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 lassen sich einzelne Bausteine ausführen. Dabei wird diejenige Verbindung verwendet, die auf der linken Seite ausgewählt ist. Generell wird durch Selection einer offenen Verbindung im GUI-Browser diese als aktuelle Verbindung festgelegt. Sie wird dann verwendet, wenn in der Umgebung eines ausgeführten Bausteins keine anderen Informationen stehe.
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 =
= Common UI Bausteine =
Es gibt Bausteine, die theoretisch mit jeder Technologie verwendet werden können, möglicherweise werden aber nicht alle Funktionen unterstützt. Diese finden Sie in der Common GUI Library. Diese verwenden einen eigenen Test-Runner, der sämtliche Verbindungen kennt. Für diesen werden folgende Umgebungsvariablen verwendet:
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:
{| class="wikitable"
{| class="wikitable"
|-
|-
Zeile 46: Zeile 49:
| Master TestRunner|| MASTER_TEST_RUNNER || CURRENT_MASTER_CONNECTION
| 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 das Auswählen einer Verbindung im GUI-Browser.
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 ==
== Vorsicht bei parallelen Verbindungen ==
Wenn Ihr Test nur eine Verbindung verwendet, macht es keinen Unterschied, ob sie Common UI Bausteine oder Bausteine aus der Technologie-Bibliothek verwendet. Bei mehreren Verbindungen müssen Sie aber aufpassen! Dadurch, dass an den Common UI Bausteinen nicht bekannt ist, welche Technologie verwendet werden soll, müssen Sie auch beim parallelen Verwenden zweier verschiedener Technologien darauf achten, dass die richtige Verbindung gesetzt ist. Wenn Sie Technologie-Bausteine verwenden, haben Sie hier keine Probleme, da für die verschiedenen Technologien verschiedene Test-Runner und Umgebungsvariablen verwendet werden.
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.

Aktuelle Version vom 17. Januar 2023, 16:13 Uhr

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