Angenommen, Sie verwenden APIs eines Herstellers. Wie können Sie sicherstellen, dass deren API wie erwartet funktioniert?
Mein Hauptanliegen ist manchmal, dass der Hersteller die Änderungen an seinem Code vorgenommen und die API zerstört hat. Wir möchten eine Art automatische Software, um sie kontinuierlich zu testen. Wie gehe ich damit um?
testing
api
rest
continuous-integration
integration-tests
user34401
quelle
quelle
Antworten:
Kurze Antwort: Sie benötigen eine Testsuite für eine Drittanbieter-API - Sie müssen also eine entwickeln.
Erwarten Sie nicht, dass dies jemand anderes für Sie erledigt, und erwarten Sie keine "Wunderwaffe", um automatisch die richtigen Tests zu generieren.
Einige Dinge, die Sie zusätzlich versuchen könnten:
Ob diese Dinge funktionieren oder nicht, hängt davon ab, wer Ihr Anbieter ist und an welche Art von API Sie denken. Eine API, die eine überprüfbare Ausgabe wie Dateien erzeugt, ist viel einfacher zu testen als eine API, die ein physisches Gerät steuert, auf dem Sie das Verhalten der Sache beobachten müssen, um zu entscheiden, ob der API-Aufruf erfolgreich war oder nicht.
quelle
Basierend auf der Formulierung des Posters ist es mehr als nur ein Test, IMO. Nachdem Sie Ihren Komponententest für die API geschrieben und sichergestellt haben, dass alles wie erwartet funktioniert, müssen Sie APIs von Drittanbietern überwachen, um Probleme zu erkennen, bevor die Benutzer dies tun. Das ist das eigentliche Risiko bei APIs von Drittanbietern - es ist nicht Ihr Code und Sie haben keine Kontrolle darüber, wie viel Tests an der API durchgeführt wurden oder wann / ob sich diese ändert.
(Haftungsausschluss: hier verwendete Produktnamen) Wenn Sie Ihre API-Tests mit soapUI schreiben, können diese Tests in AlertSite als Betriebsmonitor wiederverwendet werden, um sicherzustellen, dass die API weiterhin wie erwartet funktioniert. Wenn der Test fehlschlägt, können Sie benachrichtigt werden, bevor Ihre Benutzer Sie anrufen und sich darüber beschweren, dass Ihre App nicht funktioniert.
quelle
Implementieren Sie Lerntests für Ihr Interessengebiet (Funktionen, die Sie verwenden möchten). Lerntests sind Integrationstests, die vom Entwickler gegen den öffentlichen Vertrag der API geschrieben werden. Die Tests sollten nicht mit den internen Implementierungsdetails verglichen werden, auch wenn der Quellcode für die API verfügbar ist. Diese Art von Lerntests dient zwei Zwecken:
quelle
Es gibt 2 Ansätze für dieses Problem ...
Ihre App ist mit echtem Benutzerverkehr in Betrieb:
Wenn Sie eine App in Produktion haben, die Live-Verkehr hat und von einer externen API abhängt, müssen Sie genau überwachen und gute Schwellenwerte festlegen, um so schnell wie möglich zu wissen, wann die externe API Änderungen ohne Benachrichtigung vornimmt.
Sie sollten immer berücksichtigen, dass:
Ihre App ist eine Installation und verfügt über geplante Versionen / Releases:
In diesem Fall haben Sie eine Nachfrist zum Scheitern ... Live-Benutzer sind nicht sofort von den Änderungen der externen API betroffen.
meiner meinung nach ist das eine einfachere aufgabe. Schreiben Sie einen Test (vollständiger End-to-End-Test), der echte Transaktionen / http / Anforderungen an Ihre Anwendung sendet, die die externe API aufrufen, und prüfen Sie, ob keine Fehler vorliegen. Keine Test-Kits, keine Spotttransaktion.
Nachdem diese Aufgabe erledigt ist, können Sie diese alle 24 Stunden, 1 Minute usw. ausführen.
Gute Praktiken:
Werkzeuge:
quelle