und Empfangen • Validieren und Verifizieren – Keine Simulatoren, keine Mocks notwendig • Keine verteilte Logik & Dokumentation • Hohe Erweiterbarkeit – Eigene Testaktionen erstellen – Eigene Adapter (proprietäre Schnittstellen) – Eigene Validatoren (z.B. Excel, EDIFACT) 06. November 2014 www.consol.de 11
Schnittstellen • Kunde, Netzwerk Backend, FieldForce, SMS Gateway • Typischer Use Case – Kunde gibt Störung auf – Vorgang zur Störung wird erstellt – Problemanalyse in der Netzwerk Backend-Anwendung – Je nach Analyseergebnis wird ein Techniker im FieldForce angefordert, der vor Ort die Behebung des Problems vornimmt – Nach Behebung des Problems wird die Störung abgeschlossen und der Kunde per SMS benachrichtigt www.consol.de
www.consol.de <testcase name="FirstSampleITest"> <meta-info> <author>Christoph Deppisch</author> <creationdate>2014-11-06</creationdate> <status>DRAFT</status> <last-updated-by>Christoph Deppisch</last-updated-by> <last-updated-on>2013-11-14T00:00:00</last-updated-on> </meta-info> <description>This is a sample test case</description> <actions> <echo> <message>TODO: Code the test!</message> </echo> <!-- Test actions go in here --> [...] </actions> </testcase>
Erweiterbarkeit um eigene Funktionen! 06. November 2014 www.consol.de Name Beschreibung Name Beschreibung citrus:randomString() Zufällige Zeichenkette citrus:currentDate() Aktuelles Datum citrus:randomNumber() Zufällige Zahl citrus:upperCase() Zeichenkette Groß citrus:concat() Texte zusammenführen citrus:lowerCase() Zeichenkette Klein citrus:substring() Teil einer Zeichenkette citrus:minimum() Minimum citrus:substringAfter() Ende einer Zeichenkette citrus:maximum() Maximum citrus:substringBefore() Anfang einer Zeichenkette citrus:absolute() Absolute Zahl citrus:stringLength() Länge Zeichenkette citrus:mapValue() Mapping Key-Value citrus:sum() Summe citrus:randomEnumValue() Zufälliger Wert aus Liste citrus:average() Durchschnittswert ...
um eigene Validation Matcher! 06. November 2014 www.consol.de Name Beschreibung Name Beschreibung @contains()@ Zeichenkette enthalten @matches()@ Prüft regulären Ausdruck @containsIgnoreCase()@ Zeichenkette enthalten @matchesDatePattern()@ Prüft Datumsformat @equalsIgnoreCase()@ Groß- Kleinschreibung @lowerThan()@ Zahl kleiner als @matchesXML()@ XML Vergleich @greaterThan()@ Zahl größer als @startsWith()@ Beginnt mit Zeichenkette @isNumber()@ Numerischer Wert @endsWith()@ Endet mit Zeichenkette ...
Keine Citrus Komponente in der Konfiguration notwendig – Komponente wird zur Laufzeit erstellt www.consol.de <send endpoint="jms:JMS.Hello.Queue"> <message type="plaintext"> <data>Hello from Citrus!</data> </message> </send> <receive endpoint="jms:JMS.Hello.Queue?timeout=5000"> <message type="plaintext"> <data>Hello from Citrus!</data> </message> </receive>
Maven Build – ANT Build • Testergebnisse als JUnit reports – Mail an Development Team verschicken • Artefakte sichern • Auf Feedback Zeiten achten! www.consol.de
Schnittstellen simulieren und testen – Kein Programmieraufwand – Gängige Nachrichtenprotokolle unterstützen – Erweiterbarkeit • Ausblick – Web Oberfläche zur Administration – FTP Server – LDAP Server www.consol.de