Mustervertrag für probearbeiten

Damit Vertragstests auf einem bereitgestellten Dienst oder über Mocks durchgeführt werden können, muss allen Parteien ein Vertrag zur Verfügung stehen. Dies ist unsere API-Dokumentation. Je nach REST-Reife Ihrer Organisation kann die Qualität variieren. Das ist genau das, was Vertragstests bewirken. Es verspottet oder fragt eine Antwort ab, damit Sie einige der Informationen über Funktionen erhalten können, die Sie benötigen. Was wäre, wenn das Anbieterteam den Vertrag nicht wie vom Verbraucher erwartet und vereinbart umsetzte? Was wäre, wenn die API bei der ersten Veröffentlichung wie erwartet funktionierte, aber ein paar Releases auf der Straße das Anbieterteam den API-Vertrag durch Änderung einiger der Semantik in der Antwortnutzlast brach? Falls die Kommunikation zwischen dem Test des Verbraucherdienstes und dem Vertrag des Herstellers fehlerhaft ist, werden die Tests fehlschlagen, und das Problem muss behoben werden, bevor eine neue Änderung in der Produktion vorliegt. Die oben genannten, lieben Leser ist, warum Tester sagen “es hängt” viel und stellen Bündel von Fragen. Es ist nicht so, dass wir keine konkrete Antwort haben, es passiert nur, dass wir eine Menge Informationen und Kontext brauchen, um Ihnen die RICHTIGE konkrete Antwort zu geben. Zusammenfassend ist Folgendes erforderlich, um Anbietervertragstests durchzuführen: Das Ausnageln des DevOps-Prozesses um die Pipeline Ihrer Verbraucher und Anbieter ist von entscheidender Bedeutung, da dies der Schlüsselfaktor für eine erfolgreiche Einführung von Consumer-Driven Contract-Tests in Ihrer Organisation sein wird. Gemäß der Spezifikation gibt die Petstore-API eine 200 für alle Abfragen zurück, die sie bitten, ein Haustier mit dem Status “verfügbar”, “ausstehend” oder “verkauft” zu finden. Für alles andere, es wird eine 400 zurück.

Weitere Informationen zu http-Anfragen und Antworten finden Sie hier. Testen wir diese Vereinbarung: a. Unmittelbar nach Erhalt dieser Lieferbestandteile wird der Kunde unverzüglich Tests der Lieferbestandteile durchführen, um zu bestätigen, dass die Lieferbestandteile in Übereinstimmung mit den Unterlagen oder anderen standards, die in der Leistungserklärung festgelegt sind, funktionieren. Dies kann z. B. einige Fragen aufwerfen: Wie kann ich ConsumerCode und seinen Vertragstest zusammenführen, bei dem der Anbieter ihn noch nicht implementiert hat? Wenn Sie die API-Endpunkte für Ihre Tests verspotten, erhalten Sie keine Informationen über die letztendlich bereitgestellten Endpunkte. Wenn Sie potenzielle Probleme wie Endpunktkonfigurationsprobleme oder missbrauchte Klassen finden möchten, müssen Sie einige eigenständige oder Integrationstests für den bereitgestellten Dienst ausführen. In den letzten Jahren tobt eine Debatte darüber, ob vertragsbasierte Tests funktionale oder end-to-end-Tests ersetzen können. Einige schlagen vor, endbenutzerorientierte Tests durch Komponententests oder Komponententestframeworks zu ersetzen, die während der Codebereitstellung geschrieben und ausgeführt werden.

Wie man vielleicht bemerkt, kodieren wir auch keine tatsächlichen Werte in den Vertrag, sondern ziehen es vor, die tatsächlichen Werte basierend auf ihren Typen, Ihrer Struktur oder einem regulären Ausdruck abzugleichen. Mehr dazu, warum dies später eine bewährte Methode ist. Vertragsbasierte Tests erfordern auch den Kontakt zwischen Anbieter und Consumer für die Testausführung. Entweder das oder sie müssen mit einem verspotteten oder gefälschten System getestet werden und nicht gegen die Produktionsinstanz eines externen Dienstes. Wenn Sie die Produktionsinstanz treffen müssen, wenden Sie sich an den Anbieter, bevor Sie den Endpunkt mit Tests erreichen. Sie müssen sich beide der Auswirkungen Ihrer Tests bewusst sein und wissen, welche Daten ggf. hinzugefügt oder geändert werden. Die vertragsbasierte Testausführung gibt Ansagen, dass der API-Endpunktcode: Sie können die Swagger-Funktion “Testen” verwenden, cURL oder Postman, um mit den Petstore-Anforderungen zu spielen. Bitte beachten Sie, dass die swagger.io-Schnittstelle nur die glücklichen Pfade testet, sodass Sie eines der anderen Tools verwenden müssen, um die Anforderungssyntax zu senden, um 400 / 500 Typantworten aufzurufen.

This entry was posted in Uncategorized. Bookmark the permalink.