Muster vereinbarung probearbeiten


Um dies zu tun, müssen wir eine echte Instanz des API-Dienstes des Anbieters ausgliedern, vorzugsweise mit einer echten Datenbank, da es höchstwahrscheinlich notwendig sein wird, den Zustand zu mutieren. Dies bedeutet, dass es am besten geeignet ist, die Anbietervertragstests in CI auszuführen, damit die Tests näher an einem Integrations- oder End-to-End-Test sind. Die vom Anbieter im Rahmen dieses Geschäftsvertrags zu leistenden Arbeiten („Dienstleistungen“) sind wie in den Werkerklärungen des Anbieters festgelegt. Lassen Sie den Terminologiebereich (unmittelbar unten) überspringen, wenn Sie bereits über kenntnissebewiebe eine oder mehrere Anwendungen für Vertragstests verfügen. Das Paktmanifest wird benötigt, da der von den Teams festgelegte Workflow für die Quellcodeversionierung ein Trunk-basierter Entwicklungsworkflow ist. Das bedeutet, dass, wenn eine Integration mit dem Anbieter in einer Branche entwickelt wird, einschließlich aller relevanten Consumer-Vertragstests, sie sehr schnell mit der Master-Zweigstelle zusammengeführt wird, nachdem sie überprüft und alle Tests in diesem Pull Request-Zweig bestanden hat. Es wird mit Master zusammengeführt, auch wenn der Anbieter nichts implementiert hat. Anwendungsfall 1 – Der interne Verbraucher ohne einen entwickelten Dienst Ich bin ein Tester auf TeamA (der Verbraucher). TeamB (der Anbieter) entwickelt einen neuen Dienst, mit dem die Komponente, die ich getestet habe, integriert werden muss. Ich möchte einige Tests schreiben, um die Integration zwischen den beiden zu gewährleisten. In Zusammenarbeit mit den Entwicklern von TeamA und TeamB werde ich einige Vertragstests für den neuen Dienst an verspotteten Endpunkten schreiben, um sicherzustellen, dass meine Komponente, wenn sie die Endpunkte ankündigt, wie erwartet integriert wird. Anwendungsfall 2 – Der externe Verbraucher mit einem entwickelten Service Ich bin ein Web-Entwickler, der die Marvel Comics APIs in meinem Comic-Buchhandlung Shopfront verbraucht.

Ich möchte sicherstellen, dass Änderungen an den Marvel-APIs die von mir beaufstandeten Dienste nicht unterbrechen, da dies mehrere Teile meiner Zielseite brechen würde. Ich werde meinem Tester die API-Spezifikation zur Verfügung stellen, damit wir die API verspotten können. Die daraus resultierenden Vertragstests helfen uns zu überprüfen, ob alle Vereinbarungen, die wir von Marvel als unserem Anbieter erwarten, nach Änderungen an der Service-URL oder einzelnen Endpunkten noch bestehen. Anwendungsfall 3 – Der interne Verbraucher mit Endpunkten in der Produktion Wir sind ein Scrum-Team. Wir haben eine neue Komponente gebaut, um eine bereits in der Produktion zu ersetzen. Die APIs, die die Komponente verbraucht, befinden sich ebenfalls in der Produktion, können jedoch von niemand anderem als internen Entwicklungsteams verwendet werden. Wir möchten keine ganze Regressionsumgebung für diese eine Änderung erstellen, da wir die Möglichkeit haben, in der Produktion zu testen. Wir möchten jedoch eine gewisse Sicherheit, dass die bereitgestellte Komponente auf alle Endpunkte zugreifen kann, die sie ankündigt, bevor wir live bereitstellen. Wir werden die vorhandenen Endpunkte verspotten und durch Vertragstests sicherstellen, dass unsere neue Komponente sie verbrauchen kann. Anwendungsfall 4 – Welches technische Design entscheidet wir sind ein Scrum-Team zu machen.

Wir beabsichtigen, eine neue API für einen cloudbasierten Container zu erstellen und bereitzustellen. Es gibt jedoch einige Diskussionen innerhalb des Teams, ob ein REST- oder ein SOAP-Dienst verwendet werden soll. Es gibt gute Punkte auf beiden Seiten für die Verwendung von beiden. Es wird entschieden, ein POC mit beiden zu machen und zu sehen, wie reaktionsfähig beide APIs auf Feature-Ebene sind. Das bedeutet, dass wir die SLA-Zeiten für die Antworten auf die Aufrufe an die APIs überwachen werden. Wir schreiben unsere Tests und setzen eine Klausel ein, damit die Assertion als fehlgeschlagen markiert wird, wenn die Antwort mehr als 100 ms vom ersten Aufruf bis zur Antwort dauert. Auf diese Weise wissen wir für die glücklichen Pfade in unserer Anwendung, welche Funktionen in den gleichen Umgebungen am leistungsfähigsten sind, aber mit einem anderen Service-Design. Das ist es, Vertragstests, wie es zu tun, einige Anwendungsfälle und was es für Sie als Anbieter oder Verbraucher tun kann und was nicht. Nicht auf den Punkt gebracht, vielleicht eher eine Hütte wirklich.

In der Zwischenzeit hat mein Kollege Darren Smith aus Newcastle einen ausgezeichneten Beitrag zu verbrauchergesteuerten Tests mit PACT geschrieben, der einen großartigen Überblick über einige der Fähigkeiten dieses Tools bietet.


Weitere interessante Artikel: