Java GUI Plugins

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

Deutsche Version | English Version


Unterstützte Java-Technologien[Bearbeiten]

expecco unterstützt die Automatisierung von Java-Anwendungen, die mit Java Swing, Java SWT oder JavaFX implementiert sind. Ebenso werden Anwendungen unterstützt, die mehrere dieser Technologien vereinen, z.B. eine Swing-Anwendung mit eingebettetem JavaFX-Inhalt.

Java Swing[Bearbeiten]

Diese Erweiterung für expecco ermöglicht die Testautomatisierung von Java-Anwendungen, deren Benutzeroberflächen mit Swing erstellt wurden. Die Baustein-Bibliothek beinhaltet Blöcke zur Steuerung und Überprüfung von Swing-Benutzeroberflächen. Zudem integriert sich diese Erweiterung in die expecco GUI Test Extension. Diese dient der Unterstützung bei der Entwicklung von Testsequenzen.

Hauptmerkmale[Bearbeiten]

  • Automatisierte Bedienung und Überprüfung von Swing-Benutzeroberflächen
  • Gleichzeitige Bedienung mehrerer Anwendungen
  • Steuerung von Swing-Benutzeroberflächen auf entfernten Zielsystemen
  • Steuerung von bereits eigenständig laufenden Java-Anwendungen (keine Änderung am Quell-Code notwendig, keine Rekompilierung der Anwendung nötig)
  • Adressierung der Bedienelemente durch XPath
  • Zugriff auf Objektebene durch Java Bridge Interface Library möglich
  • Integration in die expecco GUI Tests Extension
  • Block-Bibliothek mit Aktionen und Überprüfungen für Swing-Komponenten

Java SWT[Bearbeiten]

JavaFX[Bearbeiten]

Ab Java 11 ist JavaFX nicht mehr im JDK enthalten. Daher müssen Sie zusätzlich ein JavaFX SDK installieren, z.B. von OpenJFX. Kopieren Sie dann die jar-Dateien aus dem lib-Verzeichnis des JavaFX JDKs nach packages\exept\expecco\plugin\javafx\lib im expecco-Installationsverzeichnis.

Funktionsweise[Bearbeiten]

Das Interface baut eine Verbindung zur Java-VM auf und stellt Funktionen zum Lesen von Widget-Attributen, Aufnehmen von Benutzereingaben sowie zum Fernsteuern der Anwendung zur Verfügung. Außerdem werden in einer Bibliothek zusätzliche Bausteine zur Automatisierung von Tests bereitgestellt. Im wesentlichen besteht das Java-Swing-Plugin aus zwei Teilen, der Erweiterung für expecco und der Applikationssteuerung (Agent). Zur Steuerung der Swing-Anwendung wird ein so genannter Agent in die Java Virtual Machine der laufenden Java Anwendung geladen. Um den Agenten zu laden wird ein Java Development Kit 1.8 (JDK) oder höher benötigt. Die zu testende Anwendung kann jedoch in einer normalen Java Runtime Edition 1.8 (JRE) ausgeführt werden.

Anforderungen[Bearbeiten]

Auf dem Rechner auf dem die zu testende Anwendung laufen soll (lokal oder entfernt):

Auf dem expecco Rechner gelten die expecco Anforderungen.

Bitte nehmen Sie zur Kenntnis, dass sowohl der Agent als auch die zu testende Anwendung jeweils beide entweder mit 32 oder 64 Bit Java gestartet werden müssen, da ansonsten keine Verbindung möglich ist.

Aufgrund von JDK Änderungen zwischen den Java-Versionen können potentiell Versionskonflikte auftreten.

Die Kompatibilität der Versionen ist wie folgt. Weitere Informationen dazu.

JavaSwing Bridge Compatibility.png

Zugriffsberechtigungen[Bearbeiten]

Um eine Verbindung auf dem Zielsystem garantieren zu können, müssen beim Start der zu testenden Anwendung (sowie des Java-Agenten) zusätzliche Parameter mitgegeben werden.

Dabei ergeben sich zwei Möglichkeiten, dies zu tun:

  • Setzen einer Umgebungsvariablen die automatisch beim Start jeder Java-Anwendung geladen wird
  • Manuelle Übergabe der Parameter bei jedem Start einer Java Anwendung
  • (Alternativ kann man Zugriffsrechte in den module-info.java Dateien direkt verändern, dies ist jedoch alles andere als praktikabel)

Bis Java 11 sollte es ausreichen, folgende Parameter zu setzen:

-Djdk.attach.allowAttachSelf=true
--illegal-access=permit

Das Setzen einer Umgebungsvariable funktioniert folgendermaßen (Am Beispiel JDK_JAVA_OPTIONS, welche bei jedem JVM Start geladen wird)
für Windows Systeme

  • setx JDK_JAVA_OPTIONS "-Djdk.attach.allowAttachSelf=true; --illegal-access=permit"
  • oder über das GUI (Windowstaste + Pause).

Windows Setenvironment.png

für Unix Systeme

  • Bash: export _JAVA_OPTIONS='-Djdk.attach.allowAttachSelf=true; --illegal-access=permit'
  • C Shell: setenv _JAVA_OPTIONS '-Djdk.attach.allowAttachSelf=true; --illegal-access=permit'


Ab Java 11 erfolgt für die Kapselung von Modulen eine striktere Trennung:

--illegal-access=permit wird dabei nicht mehr funktionieren, falls die Zielapplikation eine festgelegte Modulkapselung besitzt (Details). In diesem Fall müssen beim Programmstart zusätzliche Parameter angegeben werden, welche Expecco einen Zugriff auf die innewohnenden Ressourcen gewähren. Je nach verwendeter Technologie können die benötigten Parameter variieren, weshalb Sie diese selbstständig herausfinden müssen. jdeps list-deps JARNAME.jar Jdeps ist dafür ein frei verfügbares (Teil des JDK) sehr nützliches Werkzeug. Eine kurze Übersicht der Kommandos findet man hier ©


Beispiel JavaFX:

Die Umgebungsvariable PATH_TO_FX, die auf das JavaFX Verzeichnis zeigt, muss gesetzt sein (Funktionsweise s.o.) und die folgenden Parameter müssen beim Start der Java Anwendung vorhanden sein:

Parameterliste (ausklappbar)

  • --module-path "%PATH_TO_FX%"
  • --add-modules=javafx.controls
  • --add-modules=javafx.swing
  • --add-modules=javafx.web
  • --add-opens javafx.graphics/com.sun.javafx.sg.prism=ALL-UNNAMED
  • --add-opens javafx.graphics/javafx.stage=ALL-UNNAMED
  • --add-opens javafx.graphics/javafx.scene=ALL-UNNAMED
  • --add-opens javafx.graphics/com.sun.javafx.stage=ALL-UNNAMED
  • --add-opens javafx.graphics/javafx.scene.layout=ALL-UNNAMED
  • --add-opens javafx.controls/javafx.scene.control=ALL-UNNAMED
  • --add-opens javafx.controls/javafx.scene.control.skin=ALL-UNNAMED
  • --add-opens javafx.controls/javafx.scene.chart=ALL-UNNAMED
  • --add-exports javafx.controls/com.sun.javafx.charts=ALL-UNNAMED
  • --add-opens javafx.controls/com.sun.javafx.charts=ALL-UNNAMED
  • --add-exports javafx.controls/com.sun.javafx.scene.control=ALL-UNNAMED
  • --add-opens javafx.controls/com.sun.javafx.scene.control=ALL-UNNAMED
  • --add-opens javafx.graphics/javafx.scene.image=ALL-UNNAMED
  • --add-opens javafx.graphics/javafx.scene.shape=ALL-UNNAMED
  • --add-opens javafx.graphics/javafx.scene.text=ALL-UNNAMED
  • --add-opens javafx.graphics/javafx.application=ALL-UNNAMED
  • --add-opens javafx.graphics/javafx.geometry=ALL-UNNAMED
  • --add-opens javafx.graphics/javafx.scene.robot=ALL-UNNAMED
  • --add-exports javafx.graphics/com.sun.glass.ui=ALL-UNNAMED
  • --add-opens javafx.graphics/com.sun.glass.ui=ALL-UNNAMED
  • --add-opens javafx.graphics/com.sun.glass.ui.win=ALL-UNNAMED
  • --add-opens javafx.graphics/javafx.scene.input=ALL-UNNAMED
  • --add-opens javafx.base/javafx.event=ALL-UNNAMED
  • --add-exports javafx.base/com.sun.javafx.runtime=ALL-UNNAMED
  • --add-opens javafx.base/com.sun.javafx.runtime=ALL-UNNAMED
  • --add-exports javafx.graphics/com.sun.javafx.scene=ALL-UNNAMED
  • --add-exports javafx.graphics/com.sun.javafx.util=ALL-UNNAMED
  • --add-exports javafx.graphics/com.sun.javafx.scene.input=ALL-UNNAMED
  • --add-exports javafx.web/com.sun.webkit.dom=ALL-UNNAMED

Wenn Sie die Kommandozeilenoptionen nicht einzeln angeben wollen, können Sie anstatt dessen Datei:Java fx command options.txt verwenden, indem sie das java Kommando aufrufen wie folgt:

   java @java_fx_command_options.txt ....

Sollten Sie dennoch einen java.lang.IllegalAccessError erhalten, müssen Sie diese Parameter in folgender Weise erweitern:

  • Fehlertext der Art module <module> does not "opens <package>" to unnamed module:
--add-opens <module>/<package>=ALL-UNNAMED
Beispiel: module java.base does not "opens java.lang" to unnamed module lösen Sie mit: --add-opens java.base/java.lang=ALL-UNNAMED
  • Fehlertext der Art cannot access class <package>.<class name> (in module <module>) because module <module> does not export <package> to unnamed module:
--add-exports <module>/<package>=ALL-UNNAMED
Beispiel: cannot access class com.sun.javafx.scene.input.ExtendedInputMethodRequests (in module javafx.graphics) because module javafx.graphics does not export com.sun.javafx.scene.input to unnamed module lösen Sie mit: --add-exports javafx.graphics/com.sun.javafx.scene.input=ALL-UNNAMED


Hilfsprogramm Erzeugen eines CommandLine-Files (Java 11 ff.)

Siehe Erzeugen eines CommandLine-Files für Module ab java 11

Konfiguration[Bearbeiten]

Installation auf dem expecco Rechner[Bearbeiten]

Achten Sie bei der Installation von expecco darauf, dass das Java-Plugin als zu installierende Komponente ausgewählt ist.

Wird die zu testende Anwendung zur Entwicklung von Testsequenzen auf dem gleichen Rechner ausgeführt, sollte nach dem Start von expecco unter Extras → Einstellungen → Erweiterungen → Java Bridge der lokale Pfad zu einem Java Development Kit 1.8 oder höher angegeben werden.

Die unbedingt erforderliche Einstellung hier ist Pfad zur JDK Installation, welche für die Hauptverbindung genutzt wird. Pfad zur Java Installation ist eine alternative Einstellung für Groovy, welches nur ein JRE benötigt. Der Java Agent wird in lokalen Verbindungen automatisch mit diesen Einstellungen gestartet.

JDKPfadEinstellungen.png

Installation auf dem Testanwendungsrechner[Bearbeiten]

Es muss das javaBin Verzeichnis des Expecco Bridge Frameworks auf den Testrechner kopiert werden. Dieses befindet sich im expecco Installationsverzeichnis unter:

...\packages\exept\bridgeFramework\javaBridge\javaBin

Damit expecco sich verbinden kann, muss der kopierte "AgentLoader" gestartet werden. Starten des "AgentLoader"

expecco GUI Browser[Bearbeiten]

Der expecco GUI-Browser ist ein zusätzliches Werkzeug, welches die Möglichkeit bietet, laufende Anwendungen zu analysieren und Testsequenzen zu entwickeln. Anschließend kann man die Informationen, wie beispielsweise Namen und Eigenschaften einzelner Elemente dazu verwenden, um mit der Funktionsbibliothek Aktionen auszuführen bzw. mit einzelnen Elementen zu interagieren.

Verbindungsaufbau[Bearbeiten]

Im Folgenden eine kurze Bilderstrecke, die Ihnen beim Einrichten einer Verbindung als Leitfaden dienen kann

JavaSwing GUI Browser.png

Zunächst wählt man über den GUI Browser (schwarzer Kreis) im Reiter Verbinden die Option Java (roter Kreis) aus. Im sich öffnenden Dialog kann man nun zwischen 3 Optionen wählen.

  • Anwendung auf der lokalen Maschine starten
Liefert eine bequeme Möglichkeit eine lokale Java Anwendung per Kommandozeilenbefehl zu starten.
  • Zu einer laufenden Anwendung auf der lokalen Maschine verbinden
Ermöglicht die Verbindung zu lokal laufenden Java Anwendungen. Der Java-Agent wird automatisch mit der Java-Version, die Sie in den Expecco Einstellungen festgelegt haben, gestartet.
  • Zu einer laufenden Anwendung auf einer anderen Maschine verbinden
Ermöglicht die Verbindung zu einem bereits gestarteten Java-Agenten auf einer anderen Maschine. Dieser stellt dann die Verbindung zur dort laufenden Java Anwendung her.


JavaSwing Connection Window.png

Eine Suche nach Java-Anwendungen listet uns alle laufenden Java Virtuellen Maschinen (JVMs) auf, die sich auf dem Zielsystem befinden (im Beispiel: localhost). Eine Auswahl der einzelnen Einträge listet weitere Informationen über die betreffende Anwendung auf.



JavaSwing Connection Connected.png

Wenn eine Verbindung erfolgreich aufgebaut wurde, wird sie automatisch in die expecco Konfigurationsliste eingetragen. Dort kann auch der GUI Aufbau der Anwendung als hierarchischer Baum eingesehen werden. Informationen zum weiteren Vorgehen können Sie unter GUI Test Referenz.



JavaSwing Connection Reconnect.png

Geschlossene Verbindngen bleiben im GUI-Browser erhalten. Wenn die Anwendung noch läuft, können Sie die Verbindung wieder aufbauen. Machen Sie dazu einen Rechtsklick auf den Eintrag und wählen Sie im Kontextmenu den Eintrag Verbinden. Falls sich die Verbindungseinstellungen geändert haben, müssen Sie die Verbindung neu konfigurieren. Dies kann passieren, wenn Sie die Anwendung zwischenzeitlich neu gestartet haben. Bei Verwendung eines entfernten Systems gilt dies auch für den Agenten.

Verbindung zu Entfernten Systemen[Bearbeiten]

JavaSwing Connection RemoteSetup.png

Um eine Verbindung remote zu erstellen, muss zunächst auf dem Zielrechner der Java-Agent gestartet werden. Dazu navigieren Sie auf dem Rechner zum zuvor kopierten Verzeichnis ...\packages\exept\bridgeFramework\javaBridge\javaBin. Dort liegt ein Skript, welches automatisch die Java-Version in JAVA_HOME erkennt und den korrekten Agenten startet.

  • Windows Nutzer starten startAgentLoader.bat
  • UNIX Nutzer starten startAgentLoader.sh

Diese Skripte können über die Kommandozeile wie im Bild gezeigt mit Parametern versehen werden.

  • -ip <HostnameOderIP> gibt dem Agenten eine spezielle IP an, auf der auf eine Verbindung gewartet werden soll. Nützlich für spezifische Netzwerkmasken.
StandardHost ist 0.0.0.0.
  • -port >PortNummer gibt dem Agenten einen spezifischen Port an, auf dem auf Verbindungen von Expecco gewartet werden soll.
Standardport ist 56784.
  • -foreground der Agent wird im Konsolenfenster ausgeführt. Log-Nachrichten werden direkt im Konsolenfenster angezeigt. Man kann den Agenten über das Konsolenfenster beenden. Ansonsten wird der Agent in einem separaten Hintergrundprozess ausgeführt.

Warnhinweise[Bearbeiten]

JavaSwing Connection Warnings.png

Sollten bei den Anwendungen in dieser Liste Probleme auftreten wie im oben stehenden Bild zu sehen ist, liefert der Verbindungsdialog automatisch einen Lösungsvorschlag. Wenn der auftretende Fehler eine Verbindung unmöglich machen würde, wird der entsprechende Eintrag automatisch als ungültig markiert.

Folgende Fehlermeldungen können auftreten und sind einfach zu beheben:

JAVA VERSION MISMATCH Wie im Bild zu sehen, kann es zu Java Versionskonflikten zwischen dem Agenten und der Anwendung kommen. In diesem Fall ist es am einfachsten die Expecco Einstellungen für Java Bridge anzupassen. Eine Remote Verbindung müsste das Programm stattdessen manuell mit der gewollten Java Version starten. Der Java Agent, wenn über das startAgentLoader skript aufgerufen, wählt die Version Anhand von JAVA_HOME auf dem remote System
32 BIT - 64 BIT KONFLIKT 32 und 64 Bit Versionen von Java sind nicht miteinander Kompatibel. Sowohl der Agent als auch die Anwendung müssen mit der selben "Bit Version" von Java gestartet werden.
UNABLE TO DETERMINE VERSION Der Agent kann nicht feststellen, welche Java Version die Anwendung nutzt. Eine Verbindung ist eventuell möglich, es kann aber potentiell ein Versionskonflikt auftreten.

Technologieübergreifende Verbindungen[Bearbeiten]

Falls eine Anwendung mehrere Java-Technologien verwendet, müssen Sie nur eine Verbindung aufbauen und dann die Bausteine aus der Bibliothek entsprechend der Technologie des anzusprechenden Elements verwenden. Seit expecco 21.1 können Sie alternativ Bausteine aus der CommonJavaGUILibrary verwenden. Lesen Sie mehr zu den verschiedenen Bibliotheken im nächsten Abschnitt.

Eingebettetes JavaFX in Java Swing[Bearbeiten]

Ist JavaFX in eine Swing-Anwendung eingebettet, enthält diese ein Element JFXPanel. Im GUI-Browser werden die JavaFX-Elemente unterhalb von diesem Panel angezeigt. Damit die FX-Bausteine diese eingebetteten FX-Elemente finden, muss zu Beginn der Baustein Set FX Context To Panel aus der Swing-Library mit dem Pfad zum JFXPanel ausgeführt werden.

WebView in JavaFX[Bearbeiten]

Ist ein WebView in JavaFX eingebunden, so werden dessen Elemente im GUI-Browser unterhalb des WebView-Elements angezeigt. Für diese Elemente gibt es eigene Bausteine in der JavaFX-Library, die im Ordner Embedded WebView zusammengefasst sind. Damit die Elemente im Test gefunden werden können, muss zuvor der Baustein Set WebView Context auf das Element WebView ausgeführt werden. Dieser Kontext ist gültig, bis sich die vom WebView dargestellte Seite ändert. In diesem Fall müssen Sie den Kontext erneut setzen, um auf die neuen Elemente zuzugreifen.

Eingebettetes Java Swing in JavaFX[Bearbeiten]

Ist Java Swing in eine JavaFX-Anwendung eingebettet, enthält diese ein Element SwingNode. Im GUI-Browser wird dessen Inhalt bisher noch parallel zum FX-Inhalt angezeigt. Die Bausteine der Swing-Library können direkt mit diesen Elementen verwendet werden.

Zusammengesetzte Pfade[Bearbeiten]

Seit expecco 21.1 sind in der CommonJavaGUITestLibrary Bausteine enthalten, die generell mit allen drei unterstützten Java-Technologien funktionieren, sowie mit Embedded WebView in FX. Aber genauso, wie manche Bausteine nur mit bestimmten Typen von Elementen funktionieren, gibt es darunter Bausteine, die nicht alle Technologien unterstützen. Die gesamte Funktionalität aus den individuellen Bibliotheken ist hier aber ebenfalls verfügbar.

Diese Bausteine verwenden zusammengesetzte Pfade für technologieübergreifende Verbindungen, d.h. ein eingebettetes Element wird durch einen Pfad adressiert, der den Pfad zum einbettenden Element mit dem Teilpfad des Elements kombiniert. Zum Beispiel für eine Swing-Anwendung, die FX-Elemente über ein JFXPanel einbettet, könnte der Pfad zu einem FX-Button folgendermaßen aussehen:

/frame/rootpane/layeredpane/panel/JFXPanel/Scene/Node/Button

Dabei ist /frame/rootpane/layeredpane/panel/JFXPanel der Pfad zum JFXPanel innerhalb des Swing-Kontextes und /Scene/Node/Button der Pfad zum Button innerhalb des FX-Kontextes des JFXPanels. Bausteine um den Kontext zu wechseln sind nicht mehr notwendig. Die Pfade können auch verkürzt werden, allerdings muss der einbettende Knoten, hier das JFXPanel, expliziter Teil des Pfades sein. Z.B.

//JFXPanel//Button

würde ebenfalls funktionieren.

Zusammengesetzte Pfade funktionieren nur mit den Bausteinen aus der CommonJavaGUITestLibrary. Die Bausteine aus den spezifischen Bibliotheken funktionieren weiterhin mit den alten Pfaden und können nebeneinander verwendet werden. Um im GUI-Browser zur Verwendung der alten Pfade und Bausteine zurückzuwechseln, wählen Sie im Menü GUI Browser > Aufnahme den Eintrag Record Compound Paths ab.

Bibliotheken[Bearbeiten]

Es gibt verschiedene Baustein-Bibliotheken, die für Java-Verbindungen verwendet werden können. Ursprünglich wurde für jede Technologie eine eigene Bibliothek bereitgestellt, seit expecco 21.1 gibt es eine gemeinsame Bibliothek, die mit allen unterstützen Java-Technologien funktioniert. Jede der Bibliotheken enthält Connect-Bausteine, die alle eine Verbindung vom selben Typ aufbauen. Daher können Bausteine aus allen Bibliotheken im selben Test mit derselben Verbindung verwendet werden.

JavaSwingLibrary[Bearbeiten]

Enthält Bausteine zum Testen von JavaSwing-Anwendungen und eingebetteten JavaSwing-Inhalten. Außerdem gibt es Bausteine, um den Kontext für eingebettete JavaFX-Inhalte zu setzen (siehe JavaFXLibrary). Pfade für diese Bausteine beziehen sich immer nur auf den JavaSwing-Inhalt, auch wenn dieser beispielsweise in einer JavaFX-Anwendung eingebettet ist.

JavaSWTLibrary[Bearbeiten]

Enthält Bausteine zum Testen von JavaSWT-Anwendungen.

JavaFXLibrary[Bearbeiten]

Enthält Bausteine zum Testen von JavaFX-Anwendungen und eingebetteten JavaFX-Inhalten. Um auf eingebettete JavaFX-Elemente innerhalb einer Swing-Anwendung zugreifen zu können, muss zunächst der Kontext auf das entsprechende JFXPanel gesetzt werden. Dafür gibt es einen Baustein in der JavaSwingLibrary. Die Pfade werden dann innerhalb dieses Kontexts aufgelöst. Ansonsten werden die Pfade innerhalb der vorhandenen Stages aufgelöst. Außerdem gibt es Bausteinen für eingebetteten WebView. Um diese zu verwenden muss der Kontext auf den entsprechenden WebView gesetzt werden.

CommonJavaGUILibrary[Bearbeiten]

Ab expecco 21.1 enthält die CommonJavaGUILibrary Bausteine, die mit allen Java-Elementen verwendet werden können. Falls eine Anwendung verschiedene Java-Technologien benutzt, werden zusammengesetzte Pfade verwendet, um ein Element anzugeben. Der Wechsel in verschiedene Kontexte ist damit nicht mehr nötig.

Diese Bibliothek sowie die Ausweitung Funktionalität der Bausteine auf jeden Elementtypen befindet sich allerdings noch im Aufbau, sodass manche Bausteine noch nicht mit allen Elementen funktionieren. Insbesondere erfordert die Bibliothek auch eine entsprechend neue expecco Version.

Example[Bearbeiten]

FAQ[Bearbeiten]

  • Der Baum im GUI-Browsers zeigt nicht alle Elemente meiner Applikation
Eine Applikation besteht aus vielen verschiedenen Elementen. Manche davon sind nicht interaktiv, das heißt sie sind für den Anwender nicht direkt sichtbar und dienen lediglich der Formatierung, wie beispielsweise Panels. Das Vorhandensein solcher Elemente führt dazu, dass der Baum sehr groß und tief werden kann. Da diese Elemente in der Regel für die Automatisierung uninteressant sind, werden sie in expecco standardmäßig ausgeblendet.
Wenn Sie in Ihrem Fall auf eines dieser Elemente zugreifen wollen oder es für das Erstellen eines eindeutigen Pfades brauchen, können Sie dieses Verhalten ändern. In der JavaSwingLibrary gibt es dafür den Baustein Set Skip Mode. Dabei sind vier Modi auswählbar:
INTERACTIVE nur interaktive Elemente einsammeln
ALL alle Elemente einsammeln
INTERACTIVE_HYBRID wie INTERACTIVE, aber mit dem Fallback zu ALL wenn ein Pfad nicht aufgelöst werden kann
ALL_HYBRID wie ALL, aber mit dem Fallback auf INTERACTIVE wenn ein Pfad nicht aufgelöst werden kann
Durch das Ausführen des Bausteins ändert sich das Verhalten für die aktuelle Verbindung. Es bezieht sich sowohl darauf, was im Baum angezeigt wird, als auch, wie mit den Pfaden an den Bausteinen umgegangen wird. Ab expecco 19.1 ist die Standardeinstellung ALL_HYBRID und in früheren Versionen INTERACTIVE.
  • Ich kann mich nicht verbinden, aber alle Einstellungen stimmen
Auch wenn dies generell nicht passieren sollte, hier ein paar Aspekte, die Einfluss auf die Verbindung nehmen können.
FIREWALL Die Firewall kann das Kommunizieren des Java Agenten mit der Anwendung stören.
Entweder man richtet eine Ausnahmeregel für den Agenten ein oder aber man deaktiviert die Firewall für die Dauer des Tests.
SOCKET BELEGT Es kann vorkommen, besonders beim Debuggen, dass eine vorherige Instanz eines Java Agenten nicht korrekt geschlossen wurde. Das kann dazu führen, dass dieser den Socket belegt und andere Verbindungen abweist.
Über Extras => Fehleranalyse => Alle Bridgeverbindung schließen / Alle Socketverbindungen schließen werden vorherige Instanzen entfernt.
Bitte beachten, dass damit auch alle anderen bestehenden (lokalen) Expecco Verbindungen geschlossen werden. Im Fall einer Remote-Verbindung sollte ein Neustart des Agenten und evtl. auch der Anwendung Abhilfe schaffen.



Copyright © 2014-2024 eXept Software AG