how publish pact contract pact broker
Ta vadnica razlaga dve možnosti za nastavitev posrednika Pact. Pogodbo o pogodbi lahko objavite posredniku Pact s pomočjo okvira pact-js in z Postman:
test enote vs primer integracijskega testa
Kaj je Pact Broker?
Pact Broker je orodje, ki ga zagotavljajo ustvarjalci okvira Pact. Omogoča shranjevanje pogodb, vizualizacijo potrošnikov in status pogodbe o preverjanju.
Razlog za ločenega posrednika za shranjevanje pogodb je v tem, da je vsak niz testov pogosto napisan v različnih repozitorijih in celo v različnih jezikih.
=> Tukaj raziščite serijo usposabljanj za preprosto preizkušanje pogodb
Kaj se boste naučili:
Objavite pogodbo o pogodbi za posrednika
Preden se lotimo objave pogodbe, se morate odločiti, ali želite Pact Broker gostiti sami ali uporabljati gostovano storitev, kot je Pactflow .
Osebno smo se odločili za Pactflow, saj ta ponuja dodatne ugodnosti, kot so prikazane v spodnji tabeli:
Značilnost | Pactflow | Samostojno gosti |
---|---|---|
SSO (Github) | Da | Ne |
Vzdrževalna dela na strežniku | Ne | Da |
Varni žetoni / skrivnosti | Da | Ne |
Spletne kljuke | Uporabniški vmesnik nastavljiv | Ročna konfiguracija |
Infrastruktura kot koda | Terraform | Dockerfile |
Nastavitev paktnega posrednika s Pactflow
Pactflow ponuja brezplačno možnost, ki vam jo zaračuna šele po 180-mesečnem preizkusu (od maja 2020), to je 10 let in pol.
- Registrirajte svoj e-poštni naslov pri Pactflow (upoštevajte, da lahko vedno dodate dodatne uporabnike pozneje).
- Nastavite podatke o podjetju in poddomeno za svojega posrednika Pact.
- Zdaj bi morali prejeti e-pošto z začasnim uporabniškim imenom in geslom.
- Pomaknite se do svoje poddomene, (tukaj je moja poddomena ) in se prijavite. Če je bilo to uspešno, bi morali videti primer aplikacije z že nastavljeno pogodbo.
Kako preveriti proti pogodbam znotraj Pactflowa bomo preučili pozneje v vadnici.
Nastavitev Pact Brokerja z Dockerjem (docker-compose)
Pact ponuja slike dockerjev, s katerimi lahko v nekaj sekundah enostavno zavrtite svojega Pact Brokerja z docker-compose. The github repozitorij pojasnjuje, kako je to mogoče storiti, pojdimo na to kasneje.
Spodaj je navedenih nekaj dodatnih korakov, ki zagotavljajo stabilnost storitve:
- V polje dodajte »znova zaženi: vedno« docker-compose storitve.
- Zaženite docker-compose na strežniku z uporabo ločenega argumenta `-d`, da omogočite njegovo izvajanje v ozadju.
Objavljanje pogodbe s pact-js
Vsaka implementacija jezika Pact ima svoje metode za objavo pogodb posredniku. Če objavite v programu Pact Broker v JavaScript, mora biti konfiguracija podobna tej.
Zgoraj prikazani žeton paktnega posrednika je v nastavitvah shranjen v Paktflow. Posnetki zaslona so prikazani spodaj. Prepričajte se, da uporabljate žeton CI, ki ima dovoljenja za branje in pisanje.
Pojdi do Nastavitve in nato žetoni API v Pactflowu.
Verjetno skrivnosti in gesla ne bi smeli shraniti v git, zato je treba uporabiti datoteko `.env` in nanjo sklicevati v nečem, kot je prikazano spodaj.
Skupaj z “ObjaviVerificationResult” vrednost, ne želite preverjati pogodb v vašem lokalnem okolju. Zato je treba nastaviti drugo spremenljivko okolja, kot je prikazano spodaj.
Zdaj lahko pogodbo objavimo neposredno v kodi.
Založniška pogodba s poštarjem
Za preverjanje prve pogodbe običajno uporabljamo Poštarja, da zagotovimo pravilno postavitev posrednika. Poštar je bil uporabljen tudi, ko so potrošniki počasi sprejemali Pakt v svoji ekipi, zato smo pogodbo objavili pri posredniku Pact in potrošniško skupino prosili, naj preveri, ali so s pogodbo zadovoljni.
To nam je omogočilo, da smo kot ponudniška ekipa preverili skladnost s pogodbo in imeli več zaupanja v naše razmestitve. Tudi ko je bila potrošniška skupina pripravljena sprejeti Pakt, so že imeli delovni zgled.
Koraki za objavo Poštarja so navedeni spodaj:
# 1) PUT: Sestavite zahtevo
- Pomaknite se do poddomena
- Ime ponudnika
- Ime potrošnika
- Različica
# 2) Pooblastitev: dodajte žetonski nosilec (kar je enakovredno zgoraj omenjenemu žetonu API)
# 3) Vključite Pact JSON kot telo (JSON lahko kopirate neposredno v polje telesa, s čimer zagotovite, da je naslov Content: Type nastavljen na “application / json”).
Skupna raba paktov s ponudniki API
Ko so vaše pogodbe objavljene, lahko ponudnik pridobi pogodbo Pact tako, da zahteva URL Pact Broker z:
Običajno boste želeli preveriti z določeno različico API-ja. Na primer v arhitekturi mikro storitev uporabniška skupina nenehno spreminja informacije, ki jih zahteva od API-ja.
Poleg tega ponudnik API hkrati spreminja in bo moral preveriti, ali je različica trenutno nameščena v proizvodni različici, saj bo to zagotovilo nemoteno uvajanje.
Zaključek
Nazadnje imate Pact Broker z objavljeno pogodbo, v naslednji vadnici bomo preučili, kako napisati test ponudnika tako, da zavijete API .Net Core, povlečete najnovejšo pogodbo in preverite glede na lokalni API.
Okvir Pact ni dragocen le na začetku vašega projekta, na potrošniški način, ampak je korist vizualizacije vaših potrošnikov s posrednikom Pact zagotovo ključnega pomena za uporabo tega orodja.
Sposobnost boljšega razumevanja interakcij s potrošniki in tega, kako se API dejansko uporablja, se lahko pogosto izgubi pri prevajanju in lahko povzroči produkcijsko težavo. To vodi v ure odpravljanja napak in vlečenja po dnevnikih aplikacij.
V tej vadnici smo se naučili dveh različnih možnosti za nastavitev vašega Pact Brokerja. Pogodbo ste objavili z uporabo okvira pact-js in tudi s Postmanom.
Na tej točki morate razmisliti o poravnavi svojih različic med mikro storitvami in tudi doslednem imenovanju ponudnikov, da ustvarite lahko berljivo in razumljivo mrežo Pact Broker.
=> Obiščite tukaj, če se želite naučiti preizkušanja pogodb iz nič
Priporočeno branje
- Kako napisati test potrošniškega pakta v JavaScript
- Uvod v pogodbeno testiranje s primeri
- Preverite pogodbo o pogodbi in neprekinjeno uvajanje s paktom CLI
- Dockerjeva vadnica: Namestitev in uvod v Docker
- Napredno skriptiranje za zapleteno testiranje delovnih tokov pri poštarju
- Kako ustvariti dokumentacijo API v poštarju?
- Kako uporabiti poštarja za testiranje različnih formatov API?
- 10 najbolj priljubljenih vprašanj za intervju z poštarji z odgovori