Testautomatisierung mit SoapUI - Automatisierte Integrationstests von Schnittstellen

Testautomatisierung mit SoapUI

Was ist SoapUI?

SoapUI ist ein Testautomatisierungs-Tool, das in erster Linie für Tests im Webservice-Bereich bzw. automatisierte Integrationstests von Schnittstellen eingesetzt wird. Es wurde anfänglich von Eviware Software und seit 2011 von der Firma SmartBear Software weiterentwickelt. Die Basisversion von SoapUI ist Open Source und kostenlos verfügbar. Es gibt auch eine kommerzielle Version, SoapUI Pro, die über erweiterte Funktionalitäten und Support verfügt. SoapUI Pro war früher eine eigenständige Software, heute ist sie eine Komponente von ReadyAPI.

SoapUI ist eines der besten Werkzeuge, um Webservices jeglicher Art zu testen. Im Folgenden werden wir Tipps geben, wie man mit diesem Tool am besten umgeht.

SoapUI (Basisversion)

Screenshot eines Beispielprojekts in SoapUI (Basisversion)

SoapUI Pro

Screenshot des gleichen Projekts in SoapUI Pro

SoapUI Testautomatisierung - Tipps für die Projektaufsetzung

Typischerweise geht es bei einem Schnittstellentest darum, einem Webservice einen Befehl (Request) zu schicken und die Antwort (Response) zu überprüfen. Vor allem bei Projekten mit vielen einzelnen Requests ist es wichtig, das Projekt gut strukturiert aufzubauen. Wie auch bei vielen anderen Softwareprojekten, steht bei einem SoapUI-Projekt als erster Schritt die Spezifikation an. Die Requests, welche Parameter zu schicken sind, welche Antworten wann geschickt werden, sind alle erforderliche Angaben, um entsprechende Schnittstellentests zu erstellen. SoapUI bietet dabei die Möglichkeit, Schnittstellenbeschreibungen automatisch einzulesen*. Dafür sollte die Beschreibung in Swagger geschrieben sein. Nähere Informationen dazu hier: https://swagger.io/ *: In SoapUI Pro ist diese Option defaultmäßig vorhanden, für die Basisversion muss ein entsprechendes Plugin installiert werden, siehe hier: https://www.soapui.org/extension-plugins/bundled.html).

SoapUI Testautomatisierung -Tipps für die Testerstellung

SoapUI gibt dem Benutzer die Möglichkeit, die Tests in sogenannten Test Suites zu gruppieren. Dies macht die Tests übersichtlicher und leichter zu warten.

SoapUI Testen von Webservices

Beispielstruktur mit zwei Test Suites und je zwei Test Cases

Empfehlenswert ist es auch, die einzelnen Tests einfach zu halten. Statt eine lange Abfolge von mehreren Requests ist es oft effektiver, je Testfall nur einen Request zu testen. Dadurch wird eine große Abdeckung schneller erreicht. Die Namen von Test Cases und Test Suites sollten aussagekräftig sein. Das ist auch später beim Reporting sehr nützlich. Geht es bei einem Testfall zum Beispiel um eine Suchanfrage, macht es Sinn, den Namen des Requests (z.B. „Search“), das erwartete Ergebnis („HTTP Status 200“) gleich im Namen zu vermerken (z.B. „SearchTest_HTTP200“). Ein weiterer wichtiger Punkt ist die Parametrisierung. SoapUI bietet die Möglichkeit, auf Projekt-, Testsuite- oder auch Testcase-Ebene benutzerdefinierte Properties einzubinden. Diese Custom Properties zu benutzen ist empfehlenswert, vor allem bei Projekteigenschaften, die sich oft im Laufe des Projekts ändern, wie z.B. Endpunkten.

SoapUI Testautomatisierung - Tipps für die Testdurchführung

Ist die Erstellung der Tests abgeschlossen, ist die Durchführung meist nur ein Knopfdruck. Die Tests können sowohl einzeln als auch in Test Suites gruppiert ausgeführt werden. Es gibt auch die Möglichkeit, alle Tests eines Projekts durchlaufen zu lassen.

SoapUI Testautomatisierung -Tipps für das Reporting

SoapUI Pro bietet die Option, Testreports zu erstellen. Es können verschiedene Arten von Reports erstellt werden, wie JUnit und Data Export. Es ist empfehlenswert, diese Reports regelmäßig zu erstellen, um den Verlauf der Entwicklung des Testobjekts besser mitzuverfolgen. Wer die Basisversion von SoapUI nutzt, wird auf Plugins oder Groovy-Skripte zurückgreifen müssen.

SoapUI Testen von Webservices

Das Symbol für das Reporting-Tool ist rot eingekreist

Zum Abschluss

Obwohl die Erstellung von SoapUI-Schnittstellentests, wie auch alle automatisierten Tests, einiges an Aufwand benötigt, lohnt sich dieser. Durch die schnelle Durchführung, die bei Bedarf leicht wiederholt werden kann, und dem ausführlichen Feedback durch das Reporting, sind SoapUI-Tests ein wichtiges Werkzeug für Webservice-Tester.

Tags: