APIs oder Application Programming Interfaces sind das Bindegewebe zwischen verschiedenen Systemen oder Schichten einer Anwendung. Anwendungen haben häufig drei Schichten: eine Datenschicht, eine Dienstschicht (API-Schicht) und eine Präsentationsschicht (UI-Schicht). Die API-Schicht enthält die Geschäftslogik einer Anwendung - die Regeln, wie Benutzer mit Diensten, Daten oder Funktionen der App interagieren können. Da die API oder die Service-Schicht sowohl die Daten-Schicht als auch die Präsentations-Schicht direkt berührt, ist sie der ideale Ort für kontinuierliche Tests für QA- und Entwicklungsteams. Während sich das traditionelle Testen auf die Benutzeroberfläche konzentriert hat, werden die Vorteile des API-Tests bekannt.
Es gibt zwar viele Aspekte des API-Tests, doch besteht dies im Allgemeinen darin, Anforderungen an einen oder mehrere API-Endpunkte zu stellen und die Antwort zu überprüfen, ob in Bezug auf Leistung, Sicherheit, Funktionsfähigkeit oder nur eine Statusprüfung. Während sich das Testen der Benutzeroberfläche auf die Überprüfung des Erscheinungsbilds einer Weboberfläche oder der Funktion einer bestimmten Zahlungstaste konzentrieren kann, liegt der Schwerpunkt der API-Tests auf dem Testen der Geschäftslogik, der Datenantworten und der Sicherheit sowie auf Engpässen bei der Leistung.
Frühere Tests
Mit dem API-Test können, sobald die Logik entworfen wurde, Tests erstellt werden, um die Richtigkeit der Antworten und Daten zu überprüfen. Wir müssen nicht darauf warten, dass verschiedene Teams ihre Arbeit beenden oder vollständige Anwendungen erstellt werden. Testfälle sind isoliert und sofort einsatzbereit.
Einfachere Testpflege
Benutzeroberflächen ändern sich ständig und bewegen sich in Abhängigkeit von ihrem Zugriff: Browser, Geräte, Bildschirmausrichtung usw. Dadurch entsteht ein Albtraum-Szenario, in dem Tests ständig neu geschrieben werden, um mit dem tatsächlichen Code in der Produktion Schritt zu halten. API-Änderungen sind viel kontrollierter und seltener - oftmals können API-Definitionsdateien wie OpenAPI Spec dazu beitragen, Refactoring-Tests in nur wenigen Sekunden zu erledigen.
Schnellere Lösung
Wenn API-Tests fehlschlagen, wissen wir genau, wo unser System kaputt gegangen ist und wo der Fehler gefunden werden kann. Dadurch werden Zeitverluste durch Bugs zwischen Builds, Integrationen und sogar verschiedenen Teammitgliedern reduziert. Der kleine, isolierte Footprint eines API-Tests ist perfekt für schnellere MTTR-Statistiken, ein wertvoller KPI für DevOps-Teams.
Geschwindigkeit und Testabdeckung
Die Ausführung von 300 UI-Tests kann 30 Stunden dauern. 300 API-Tests konnten in 3 Minuten ausgeführt werden. Das bedeutet, dass Sie in kürzerer Zeit mehr Fehler finden und diese sofort behoben werden.
Ein Beispiel:
Das folgende Beispiel ist ein ziemlich einfacher und allgemeiner Funktionstest, der auf der Benutzeroberflächenebene stattfindet. Wir begeben uns auf eine Website, füllen ein Formular aus, senden das Formular ab und überprüfen, ob wir zum nächsten Bildschirm gelangen.

Auf der UI-Ebene kann dieser einfache Test uns vor einige Herausforderungen stellen. Erstens sind wir durch die physischen Grenzen unseres Browsers und der Netzwerkverbindung behindert, da wir den Browser jedes Mal laden müssen, wenn wir eine Integration dieses Tests durchführen möchten. Zweitens könnte sich eines dieser Elemente auf dem Bildschirm ändern, und unser Test würde fehlschlagen: Wenn der Eintrag "Hunde" den Eintrag "Katzen" überdecken würde, wären wir nicht in der Lage, darauf zu klicken und unsere Tests würden fehlschlagen. Diese Herausforderungen sind für sich allein schon ärgerlich. Versuchen Sie dann, 10.000 verschiedene Namen und Kombinationen durch dieses Formular zu jagen, und Sie werden sehen, wie Ihre Entwicklungszeit zum Erliegen kommt.
Mit dem API-Test kann und sollte das gesamte Testszenario auf einen Schritt reduziert werden:
