Skip to content

API-Test

Was sind API-Tests?

API-Tests sind eine spezielle Form von Softwaretests, die zur Analyse einer Programmierschnittstelle (Application Program Interface kurz, API) angewendet werden. Hierbei versucht man herauszufinden, ob die Anwendung den Vorgaben bzw. Erwartungen in Bezug auf Sicherheit, Leistung, Funktionalität und Zuverlässigkeit entspricht. In der Regel führt man den Tests im Rahmen eines Integrationstests oder direkt gegen die API durch.

 

APIs werden manchmal auch als Middleware Schnittstellen bezeichnet. Über sie können zwei oder mehr Softwareanwendungen miteinander interagieren und kommunizieren. Die Code Spezifikation bestimmt auch, auf welche Weise die dahinter liegende Applikation Dienste aus deren Infrastruktur oder anderen Applikationen anfordern kann bzw. soll.

 

Bei API-Tests liegt der Fokus primär auf der Geschäftslogik, den Datenreaktionen und der Sicherheit der Anwendung. Während des Tests schickt man Anfragen an einen oder mehrere API-Endpunkte und vergleicht anschließend die Reaktionen der Anwendungen mit den erwarteten Ergebnissen. Die API Calls die dabei ausgeführt werden, sollten mit einem Tool z. B. Postman ausgeführt werden. Weiter Tools tragen hier zu einer API-Test Automatisierung bei um Calls und damit Testfälle gegen die API wiederholen zu können.

Wie läuft ein API-Test ab?

Bevor man mit dem eigentlichen API-Test beginnen kann, braucht man zunächst einen klar definierten Umfang des Programms und ein vollständiges Verständnis der Funktionsweise der API. Während der Vorbereitung sollten sich die Tester unter anderem mit den folgenden Fragen beschäftigen:

 

  • Welche Antwortcodes werden bei erfolgreichen Anfragen erwartet?
  • Welche Antwortcodes werden bei erfolglosen Anfragen erwartet?
  • Welche Endpunkte stehen für das Testing zur Verfügung?
  • Was für eine Fehlermeldung erwartet man im Body einer erfolglosen Anfrage?

 

Wenn diese Aspekte geklärt sind, können die Tester beginnen, die Anwendung mit unterschiedlichen Testtechniken zu prüfen. Die Testfälle sollten auch für die API geschrieben werden. Anhand der Bedingungen und Variablen, die die einzelnen Testfälle enthalten, können die Tester erkennen, ob der geprüfte Abschnitt der Anwendung richtig funktioniert bzw. reagiert. Nachdem die Tests durchgelaufen sind, vergleichen die Tester die erwarteten Ergebnisse mit den tatsächlichen Ergebnissen. Im Rahmen des API-Tests sollten unter anderem die Qualität der Daten, Fehlercodes, Antwortzeiten, Bestätigungen der Autorisierung und der HTTP-Statuscode geprüft werden.

 

Sollte nur wenig Dokumentation zur API vorliegen, ist es immer hilfreich mit dem zuständigen Entwicklerteam zu sprechen in welchem Format die Anfragen an die API gestellt werden müssen um explorative API-Tests zu reduzieren.

 

API-Tests sind bei unterschiedlichen Endpunkten anwendbar. So sind sie zum Beispiel sehr beliebt, wenn es darum geht, Datenbanken, Webdienste und Webbenutzeroberflächen zu analysieren. Während des Tests kann es zu unerwarteten Eingaben und Ausfällen kommen. Diese sollte man auf jeden Fall berücksichtigen. Die durchschnittliche Antwortzeit sollte innerhalb eines akzeptablen, vereinbarten Limits liegen, und die API sollte gegen potenzielle Angriffe geschützt sein.

 

Zudem sollten die Tests so konfiguriert sein, dass:

 

  • die API die erwartete Benutzerlast tatsächlich simulieren kann;
  • Benutzer die Anwendung nicht auf unvorhersehbare Weise manipulieren können.