Von Manoj Chaudhary, CTO und SVP of Engineering
Um die Funktionalität, Zuverlässigkeit und Sicherheit ihrer Programmierschnittstellen (APIs) zu überprüfen, führen IT-Teams eine Reihe verschiedener Tests durch, darunter Funktions-, Governance-, Chaos-, Penetrations-, Leistungs-, Stress- und Laufeifrigkeitstests. Im Folgenden skizzieren wir fünf der häufigsten Herausforderungen beim API-Testen, mit denen Teams konfrontiert sind, und bieten unsere Empfehlungen zu deren Bewältigung.
1. Das Durchlaufen der Ersteinrichtung
Das Erstellen, Entwickeln und Ingangbringen einer Testinfrastruktur kann ein zeitaufwendiges Vorhaben sein, und es kann schwierig sein, Ihr Team während des gesamten Prozesses zu motivieren.
Unsere Empfehlung
Die Erläuterung, wie sich der Testprozess langfristig auszahlt, kann ein Schlüssel zur Motivation eines Testteams sein. Es ist auch wichtig zu erwähnen, wie kritisch diese Phase beim API-Testing insgesamt ist. Überlegen Sie sich bei der Ersteinrichtung genau, wie Sie die API testen werden und was diese Tests für Ihr Infrastrukturdesign erfordern.
2. Generierung und Verwaltung großer Mengen von Testdaten
APIs mit vielen Parametern erfordern eine beträchtliche Menge an Daten (und in einigen Fällen Daten mit hoher Kardinalität) für effektive Tests. Das Erstellen, Verwalten und Sicherstellen der Wiederverwendbarkeit dieser Daten kann Tester vor eine Herausforderung stellen.
Unsere Empfehlung
Der Schlüssel zur Generierung und Einrichtung von Testdaten besteht darin, die Anforderungs- und Antwortstrukturen sowie die dazugehörigen API-Aufrufe zu verstehen. Nutzen Sie Datenmanagement-Tools, mit denen Sie diese Verbindungen verstehen können, und maskieren, generieren und unterteilen Sie dann neue Daten, die Ihren Testanforderungen entsprechen.
3. Die Ziele für Governance-Tests klar verstehen
Governance-Tests sind für APIs, die für mandantenfähige Cloud-Anwendungen entwickelt wurden, von entscheidender Bedeutung und dienen dazu, die Infrastruktur vor Überlastung, störenden Nachbarn und Angriffen zu schützen. APIs verfügen in der Regel über Governance-Regeln für ihre usage (z. B. Speicherrichtlinien, Ratenbegrenzungen und Nutzdatengröße), doch mangelndes Wissen und Verständnis sowohl hinsichtlich der API-Architekturlogik als auch dieser Regeln führt häufig zu Unsicherheiten bezüglich der Testziele.
Unsere Empfehlung
Teams können diese Herausforderung beim API-Testen entschärfen, indem sie klar definierte und gut geschriebene Governance-Regeln erstellen; entwickeln Sie Hilfsprogramme für Ihr Team, um diese nach Bedarf anzupassen, um das Testen einfacher und effizienter zu machen.
4. Chaos-Tests effektiv durchführen
Im Jahr 2010 entwickelten die Entwicklungs- und Betriebsteams von Netflix diese Form des Tests, als sie begannen, herkömmliche Infrastruktur in die Cloud-Infrastruktur von Amazon Web Services (AWS) zu verlegen. Chaos-Testing oder Chaos Engineering, ist ein äußerst disziplinierter Ansatz, der die Systemintegrität durch proaktive Simulation und Identifizierung von Ausfällen testet, bevor diese zu ungeplanten Ausfallzeiten oder einer schlechten Benutzererfahrung führen.
Der Prozess umfasst:
- Das Testen, ob ein System in einem definierten stationären Zustand funktioniert. Zuerst müssen Tester eine messbare Systemausgabe identifizieren, die ein normales Arbeitsverhalten anzeigt. Die Erstellung der Infrastruktur und der Werkzeuge zur Definition und Messung eines stabilen Zustands kann je nach Architektur und Umfang der beteiligten Anwendungen komplex sein.
- Prüfung zur Feststellung, ob der stationäre Zustand eines Systems stabil bleibt. Nachdem ein stabiler Zustand erreicht ist, prüfen die Tester, ob dieser unter Kontroll-, Experimental- und Realbedingungen bestehen bleibt.
- Tests zur minimalen Beeinträchtigung der Nutzer. Tester unterbrechen oder stören den Dienst, um die negativen Auswirkungen auf die Benutzer zu ermitteln.
- Chaos einführen. Nachdem festgestellt wurde, dass ein System in einem definierten stabilen Zustand arbeitet, dass dieser stabile Zustand anhält und dass der “Einflussbereich” (Blast Radius) eingegrenzt ist, führen Tester ihre Chaos-Testing-Anwendungen aus, um zu sehen, wie sich das System unter bestimmten Stressbedingungen oder Umständen (z. B. Serverabstürzen, fehlerhafter Hardware oder unterbrochenen Netzwerkverbindungen) verhält.
Unsere Empfehlung
In Ihrer Anwendung und Infrastruktur müssen Test-Hooks eingebaut werden, die es Ihrem Testteam ermöglichen, Chaos zu erzeugen und auf einfache Weise relevante Metriken zum Explosionsradius zu ermitteln.
5. Das richtige Team für Penetrationstests engagieren
Beim Penetrationstesting greift ein Tester mit begrenzten praktischen Kenntnissen der spezifischen API diese an, um den Angriffsvektor aus einer externen Perspektive zu bewerten. Angriffe können auf die gesamte API oder bestimmte Funktionen und Prozesse abzielen.
Unsere Empfehlung
Ein internes Team kann die ersten Penetrationstests durchführen, aber ein externer Penetester sollte die anschließenden tiefgehenden Penetrationstests durchführen.
Bewältigen Sie Herausforderungen beim API-Testen mit Jitterbit API Manager
Als Teil der einheitlichen Harmony-Plattform, Jitterbit API Manager vereinfacht das Testen von APIs, indem es Einblick in den gesamten Lebenszyklus – vom Entwurf bis zur Leistungsüberwachung – bietet und die Zusammenarbeit über eine zentralisierte management console-Plattform ermöglicht.
In Jitterbit API Manager wird die aus den OpenAPI-Definitionen generierte API-Dokumentation automatisch als interaktive Swagger-UI-Dokumentation dargestellt, sodass Teams Endpunkte in Echtzeit testen können. Erfahren Sie mehr über API Manager oder verbinden Sie sich mit einem Produktspezialisten, um Kostenlose Demo anfordern.