© BIRTHPIX/Shutterstock.com
Mit dem Citrus Simulator komplexe Systeme nachbilden

Komplexes simulieren


Heterogene Softwarelandschaften setzen sich neben den intern entwickelten Softwarelösungen aus sehr vielen Fremd- bzw. Drittanbietersystemen zusammen. In Zeiten von Microservices schnellt die Anzahl von Abhängigkeiten zu anderen Systemen in die Höhe. Die Interaktion mit diesen Systemen sollte als Teil von automatisierten Integrations- bzw. End-to-End-Tests getestet und verifiziert werden. Viele Systeme bieten aber keine Testinstanzen.

Selbst wenn Testsysteme zur Verfügung stehen, lassen sie sich nur mühsam und mit viel Aufwand konfigurieren. In diesem Kontext wollen End-to-End-Tester Testszenarien selbst definieren und aus Sicht des Fremdsystems triggern. Weiterhin wünschen sich Entwickler eine Unabhängigkeit von externen Systemen, die zum Teil noch im Aufbau sind, aber während der eigenen Entwicklungsphase bereits benötigt werden. An diesem Punkt kommt der Citrus Simulator ins Spiel. Mit dessen Hilfe lassen sich individuelle Simulatoren erstellen, die komplexe Systeme mit vielfältigen Schnittstellen nachbilden können. Der Citrus Simulator ist eine Spring-Boot-Standalone-Webanwendung, die diverse Kommunikationsprotokolle wie REST, SOAP und JMS unterstützt. Er wurde auf Basis des Testframeworks Citrus entwickelt und profitiert damit von etablierten Features des Testtools, beispielsweise der Nachrichtenvalidierung. Der Simulator bietet eine generische Benutzeroberfläche, über die sich der Anwender die bestehenden Simulatorszenarien anzeigen lassen kann. Der Benutzer hat die Möglichkeit, eigenständig Nachrichten zu generieren, zu verschicken und so Testfälle aus Sicht des simulierten Systems auszulösen. Vorgefertigte Maven-Projekte für das Simulieren einer REST-, JMS- und SOAP-Schnittstelle erlauben den schnellen Einstieg.

Um die Hauptfeatures des Citrus Simulators vorzustellen, werden wir uns eine sehr vereinfachte Version einer Schnittstelle aus dem Telekommunikationsbereich anschauen. Diese definiert den Prozess für den automatisierten Wechsel zwischen verschiedenen Dienstanbietern. Die Schnittstelle ist SOAP-basiert, synchron und bidirektional. Das Sequenzdiagramm in Abbildung 1 veranschaulicht den üblichen Ablauf.

maher_todorov_citrussimulator_1.tif_fmt1.jpgAbb 1: Vereinfachter Ablauf einer Portierungsverhandlung

Szenarien spielen die Hauptrolle

Beide am Prozess beteiligten Parteien können sowohl als aufnehmender als auch als abgebender Dienstanbieter im jeweiligen Anwendungsfall agieren. Die zentrale Komponente im Citrus Simulator ist das Szenario. Verschiedene Szenarien enthalten eine untersch...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang