how publish pact contract pact broker
Ten samouczek wyjaśnia dwie opcje konfiguracji Brokera Paktów. Możesz opublikować umowę paktową u brokera paktów za pomocą struktury pact-js i programu Postman:
alternatywa dla ccleaner dla Windows 10
Co to jest Pakt Broker?
Pact Broker to narzędzie udostępnione przez twórców frameworka Paktu. Ułatwia przechowywanie umów, wizualizację konsumentów, weryfikację statusu umowy.
Powodem posiadania oddzielnego brokera do przechowywania umów jest to, że każdy zestaw testów jest często zapisywany w różnych repozytoriach, a nawet w różnych językach.
=> Zapoznaj się z serią szkoleń dotyczących prostych testów kontraktowych
Czego się nauczysz:
Opublikuj umowę paktową z brokerem paktowym
Zanim przejdziemy do tego, jak opublikować umowę, musisz podjąć decyzję, czy chcesz samodzielnie hostować Pact Broker, czy skorzystać z usługi hostowanej, takiej jak Pactflow .
Osobiście wybraliśmy Pactflow, ponieważ oferuje to dodatkowe korzyści, jak pokazano w poniższej tabeli:
Funkcja | Pactflow | Hostowane samodzielnie |
---|---|---|
SSO (Github) | tak | Nie rób |
Utrzymanie serwerów | Nie rób | tak |
Bezpieczne tokeny / tajemnice | tak | Nie rób |
Webhooki | Konfigurowalny interfejs użytkownika | Konfiguracja ręczna |
Infrastruktura jako kod | Terraform | Dockerfile |
Utworzenie Pact Broker z Pactflow
Pactflow zapewnia bezpłatną opcję, która będzie obciążać Cię dopiero po 180-miesięcznym okresie próbnym (od maja 2020 r.), czyli 10 i pół roku.
- Zarejestruj swój adres e-mail w Pactflow (pamiętaj, że zawsze możesz dodać kolejnych użytkowników później).
- Skonfiguruj informacje o firmie i subdomenę dla swojego Pact Broker.
- Powinieneś teraz otrzymać wiadomość e-mail z tymczasową nazwą użytkownika i hasłem.
- Przejdź do swojej subdomeny (tutaj jest mój subdomena ) i zaloguj się. Jeśli to się powiedzie, powinna zostać wyświetlona przykładowa aplikacja z już skonfigurowaną umową.
W dalszej części samouczka przyjrzymy się, jak weryfikować kontrakty w ramach Pactflow.
Konfigurowanie Pact Broker z Dockerem (docker-compose)
Pact oferuje obrazy dockera, dzięki którym możesz łatwo uruchomić własnego Pact Broker w kilka sekund za pomocą docker-compose. Plik repozytorium github wyjaśnia, jak można to zrobić, omówimy to później.
Poniżej przedstawiono kilka dodatkowych kroków, które zostały dodane w celu zapewnienia stabilności usługi:
- Dodaj „restart: zawsze” do docker-compose usługi.
- Uruchom docker-compose na serwerze przy użyciu odłączonego argumentu `-d`, aby umożliwić mu działanie w tle.
Umowa wydawnicza z pact-js
Każda implementacja języka Paktu ma własne metody publikowania umów dla brokera. Publikując do Pact Broker w JavaScript, konfiguracja powinna wyglądać podobnie do tego.
Przedstawiony powyżej token pośrednika paktu jest przechowywany w Pactflow w ustawieniach. Zrzuty ekranu pokazano poniżej. Upewnij się, że używasz tokenu CI, który ma uprawnienia do odczytu i zapisu.
Iść do Ustawienia, a następnie Tokeny API w Pactflow.
Prawdopodobnie sekrety i hasła nie powinny być przechowywane w git, dlatego plik `.env` powinien być używany i odnoszony w kodzie w sposób pokazany poniżej.
Razem z „PublishingVerificationResult” wartości, nie chcesz weryfikować umów w swoim lokalnym środowisku. Dlatego należy ustawić inną zmienną środowiskową, jak pokazano poniżej.
Teraz kontrakt można opublikować bezpośrednio w kodzie.
Umowa wydawnicza z listonoszem
Zwykle do weryfikacji pierwszej umowy używamy programu Postman, aby upewnić się, że broker jest poprawnie skonfigurowany. Listonosz został również wykorzystany, gdy konsumenci powoli przyjmowali Pakt w swoim zespole, więc opublikowaliśmy umowę dla Paktu Brokera i poprosiliśmy zespół konsumentów o sprawdzenie, czy są zadowoleni z umowy.
To pozwoliło nam jako zespołowi dostawcy zweryfikować zgodność z umową i mieć większe zaufanie do naszych wdrożeń. Również kiedy zespół konsumencki był gotowy do przyjęcia Paktu, miał już praktyczny przykład do wykorzystania.
Kroki publikowania Listonosza podano poniżej:
# 1) PUT: Skonstruuj żądanie
- Przejdź do subdomena
- Nazwa dostawcy
- Imię konsumenta
- Wersja
# 2) Autoryzacja: Dodaj token okaziciela (który jest równoważny z tokenem API, jak wspomniano powyżej)
# 3) Uwzględnij Pact JSON jako treść (JSON można skopiować bezpośrednio do pola body, upewniając się, że nagłówek Content: Type jest ustawiony na „application / json”).
Dzielenie się paktami z dostawcami API
Po opublikowaniu umów dostawca może pobrać umowę paktową, prosząc o adres URL pośrednika paktu za pomocą:
Zwykle będziesz chciał zweryfikować za pomocą określonej wersji interfejsu API. Na przykład, W architekturze mikrousług zespół konsumentów nieustannie wprowadza zmiany w informacjach, których wymagają od interfejsu API.
Oprócz tego dostawca API wprowadza zmiany w tym samym czasie i będzie musiał zweryfikować wersję, która jest obecnie wdrażana w środowisku produkcyjnym, ponieważ zapewni to bezproblemowe wdrożenie.
Wniosek
Wreszcie masz brokera paktowego z opublikowaną umową. W następnym samouczku przyjrzymy się, jak napisać test dostawcy, opakowując interfejs API .Net Core, ściągając najnowszą umowę i weryfikując zgodność z lokalnym interfejsem API.
Ramy Paktu są nie tylko cenne na początku projektu, w sposób ukierunkowany na konsumenta, ale korzyść z wizualizacji konsumentów za pomocą Pact Broker jest zdecydowanie kluczowym czynnikiem przyczyniającym się do korzystania z tego narzędzia.
Ponadto zdolność do lepszego zrozumienia interakcji konsumentów i tego, w jaki sposób interfejs API jest faktycznie używany, często może zostać utracona podczas tłumaczenia i może spowodować problem z produkcją, który może się zdarzyć. Prowadzi to do godzin debugowania i przeglądania dzienników aplikacji.
W tym samouczku poznaliśmy dwie różne opcje konfiguracji brokera paktowego. Opublikowałeś swoją umowę przy użyciu frameworka pact-js, a także z Postmanem.
W tym momencie musisz pomyśleć o wyrównaniu swoich wersji w mikrousługach, a także o konsekwentnym nazywaniu dostawców, aby stworzyć łatwą do odczytania i zrozumiałą sieć Pact Broker.
=> Odwiedź tutaj, aby nauczyć się testowania umów od podstaw
rekomendowane lektury
- Jak napisać test paktu konsumenckiego w JavaScript
- Wprowadzenie do testowania kontraktowego z przykładami
- Zweryfikuj umowę Pact i ciągłe wdrażanie za pomocą Pact CLI
- Samouczek platformy Docker: instalacja i wprowadzenie do platformy Docker
- Zaawansowane skrypty dla złożonych przepływów pracy testowania w programie Postman
- Jak stworzyć dokumentację API w Postman?
- Jak używać programu Postman do testowania różnych formatów API?
- 10 najpopularniejszych pytań do wywiadu listonosza z odpowiedziami