Was sind API-Tests?

APIs sind zum Zentrum der Softwareentwicklung geworden, bei dem Daten und Logik über verschiedene Systeme und Anwendungen hinweg verbunden und übertragen werden. Glücklicherweise kann das Testen die Effizienz Ihrer Teststrategie insgesamt erheblich verbessern und Ihnen dabei helfen, Software schneller als je zuvor bereitzustellen.

Erleben Sie ReadyAPI in Aktion

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.

Die Vorteile des API-Tests

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. 

Screen-Shot-2019-03-07-at-10-43-55-AM.png

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:

Screen-Shot-2019-03-07-at-10-56-28-AM.png

SmartBear in Gartner Magic Quadrant als führendes Unternehmen für die Automatisierung von Tests für Software aufgeführt

Die Arten von API-Tests:

Screen-Shot-2019-03-07-at-11-30-38-AM.png

Unit-Tests

Während die Testwelt mit Fehlern gefüllt werden kann, ist der einfachste Weg, sich "Unit Test" und APIs als Testen eines einzelnen Endpunkts mit einer einzigen Anforderung vorzustellen, wobei nach einer einzelnen Antwort oder einem Satz von Antworten gesucht wird. Oft kann diese Art von Tests manuell über die Befehlszeile und etwas wie einen cURL-Befehl oder mit einfachen Tools wie SoapUI durchgeführt werden.

Screen-Shot-2019-03-07-at-11-41-38-AM.png

Integrationstests

Integrationstests sind die am häufigsten verwendete Form des API-Tests, da APIs bei den meisten Integrationen zwischen internen oder Drittanbieterdiensten im Mittelpunkt stehen. 

Vollständige Tests

End-to-End-Tests können dabei helfen, den Daten- und Informationsfluss zwischen verschiedenen API-Verbindungen zu überprüfen. 

Performance-Tests

Wir versuchen, das Paradigma des Last-Tests zu ändern und es in jedes Commit zu verlagern. Zuvor lagen Last-Tests in den Händen einiger weniger und waren in einer CI/CD-Umgebung schwierig auszuführen. LoadUI Pro ist ein Performance-Test-Tool für RESTful, SOAP und andere Webservices, mit dem nahezu jedes Teammitglied Performance-Tests in seine CI/CD-Pipeline einbetten kann.

Warum sollten Sie bei API-Tests auf SmartBear setzen?

Einfache Testerstellung
SmartBear stellt Automatisierungstools und -frameworks für Entwickler und Tester bereit, um die Validierung und Überprüfung von Benutzeroberflächen, APIs und Datenbanken zu unterstützen. 
Kann in Ihren CI/CD automatisiert werden
Jedes unserer Tools zur Automatisierung von Tests wird mit einsatzbereiten Plugins mit gängigen CI-Servern wie Jenkins und einer CLI für andere ausgeliefert.
Kosteneinsparungen
Profitieren Sie von sofort einsetzbaren Renditen und Einsparungen mit benutzerfreundlichen Tools, die Sie vor dem Kauf testen und implementieren können.
Bessere Testabdeckung
Führen Sie Tests im Maßstab mit realen Daten auf einer virtualisierten Infrastruktur, realen Browsern oder mit generierter Last durch.
Breite Sprachunterstützung
Verbringen Sie keine Zeit mit dem Erlernen proprietärer Sprachen! Unsere Tools arbeiten mit Ihren bevorzugten Sprachen wie Python, JavaScript und mehr.
Schnelleres Debugging
Führen Sie automatisierte Tests in einer kontinuierlichen Pipeline durch, die Ihrem Team schnellere Rückmeldungen geben und die Debugging-Zeit und die Zeit zur Lösungsfindung reduzieren.