how publish pact contract pact broker
Denna handledning förklarar två alternativ för att ställa in Paktmäklaren. Du kan publicera paktekontraktet till paketmäklaren med hjälp av ramverket pact-js och med Postman:
char nummer till int c ++
Vad är paketmäklare?
Paktmäklare är ett verktyg som tillhandahålls av skaparna av paktsramen. Det underlättar lagring av kontrakt, visualisering av konsumenter och verifieringsavtalets status.
Anledningen till att ha en separat mäklare för att lagra kontrakten är att varje uppsättning tester ofta skrivs på olika förråd och till och med olika språk.
=> Utforska The Simple Contract Testing Training Series här
Vad du kommer att lära dig:
Publicera paketavtal till paktsmäklare
Innan vi hoppar över hur vi publicerar ett kontrakt måste du fatta ett beslut om du själv vill vara värd för Paktmäklaren eller använda en värdtjänst som t.ex. Paktflöde .
Personligen har vi valt Pactflow eftersom detta ger ytterligare fördelar som visas i tabellen nedan:
Funktion | Paktflöde | Självvärd |
---|---|---|
SSO (Github) | Ja | Låt bli |
Serverunderhåll | Låt bli | Ja |
Secure Tokens / Secrets | Ja | Låt bli |
Webhooks | UI konfigurerbar | Manuell konfiguration |
Infrastruktur som kod | Terraform | Dockerfil |
Ställa in paktmäklare med paktflöde
Paktflöde ger ett gratis alternativ som endast debiteras efter 180 månaders testperiod (från och med maj 2020), det är 10 och ett halvt år.
- Registrera din e-postadress med Pactflow (notera att du alltid kan lägga till fler användare senare).
- Ställ in företagsinformation och underdomän för din paketmäklare.
- Du ska nu få ett e-postmeddelande med ditt tillfälliga användarnamn och lösenord.
- Navigera till din underdomän, (här är min underdomän ) och logga in. Om detta lyckades, bör du se exempelappen med ett kontrakt som redan är konfigurerat.
Vi tittar på hur vi kan verifiera mot kontrakt inom Pactflow senare i handledningen.
Ställa in Pact Broker With Docker (docker-compose)
Pact erbjuder dockerbilder för att enkelt snurra upp din egen paketmäklare på några sekunder med docker-compose. De github-förvar förklarar hur detta kan göras, låt oss gå in på detta senare.
Några ytterligare steg som läggs till för att säkerställa att tjänsten är stabil ges nedan:
- Lägg till 'starta om: alltid' till docker-compose tjänster.
- Starta docker-compose på servern med argumentet `-d` fristående för att låta den köras i bakgrunden.
Publiceringsavtal med pact-js
Varje Pact-språkimplementering har sina egna metoder för att publicera kontrakten till mäklaren. Publicering till Pact Broker i JavaScript, konfigurationen ska se ut som den här.
Paktmäklartoken som visas ovan lagras i Pactflow under inställningar. Skärmdumpar visas nedan. Se till att du använder CI-token som har läs- och skrivbehörigheter.
Gå till Inställningar och sedan API-token i Pactflow.
Förmodligen bör inte hemligheter och lösenord lagras i git, därför bör en `.env`-fil användas och refereras i koden med något som visas nedan.
Tillsammans med “PublishVerificationResult” värde, vill du inte verifiera kontrakt i din lokala miljö. Därför bör en annan miljövariabel ställas in, som visas nedan.
Nu kan kontraktet publiceras direkt i koden.
Publiceringsavtal med brevbäraren
Vanligtvis, för att verifiera det första avtalet, använder vi Postman för att säkerställa att mäklaren är korrekt inställd. Brevbärare har också använts när konsumenterna var långsamma med att anta Pact inom sitt team, så vi publicerade kontraktet till Paktmäklaren och bad konsumentteamet att verifiera om de är nöjda med kontraktet.
Detta gjorde det möjligt för oss som leverantörsteam att verifiera mot kontraktet och ha mer förtroende för våra distributioner. Även när konsumentteamet var redo att anta pakten hade de redan ett fungerande exempel att använda.
Stegen för publicering av Postman ges nedan:
# 1) PUT: Konstruera begäran
- Navigera till underdomän
- Leverantörens namn
- Konsumentnamn
- Version
# 2) Auktorisering: Lägg till bärartoken (vilket motsvarar API-token som nämnts ovan)
# 3) Inkludera pakten JSON som kroppen (JSON kan kopieras direkt till kroppsfältet och därigenom se till att ställa in rubriken Innehåll: Skriv till ”applikation / json”).
Dela pakter med API-leverantörer
När dina kontrakt har publicerats kan leverantören hämta Pact-avtalet genom att begära Pact Broker URL med:
Vanligtvis vill du verifiera med en specifik version av API: et. Till exempel, i en mikrotjänstarkitektur gör konsumentteamet ständigt ändringar i den information de behöver från API: et.
Utöver detta gör API-leverantören ändringar samtidigt, och de kommer att behöva verifiera mot den version som för närvarande distribueras till produktion eftersom detta kommer att säkerställa en sömlös distribution.
Slutsats
Slutligen har du en paktmäklare med ett publicerat kontrakt, i nästa handledning kommer vi att titta på hur du skriver ditt leverantörstest genom att lägga in ett .Net Core API, dra det senaste kontraktet och verifiera mot det lokala API: et.
Paktramverket är inte bara värdefullt i början av ditt projekt, på ett konsumentdrivet sätt, men fördelen med att visualisera dina konsumenter med Paktmäklaren är definitivt en viktig bidragsgivare till att använda detta verktyg.
Förmågan att bättre förstå konsumentinteraktioner och hur API: n faktiskt används kan ofta förloras i översättning och kan leda till en produktionsfråga som kan hända. Detta leder till timmar av felsökning och trålning genom applikationsloggarna.
I den här handledningen har vi lärt oss två olika alternativ för att ställa in din paketmäklare. Du har publicerat ditt kontrakt med pact-js-ramverket och även med Postman.
Vid den här tiden måste du tänka på att anpassa dina versioner över mikrotjänsterna och även att namnge dina leverantörer konsekvent för att skapa ett lättläst och förståeligt Pact Broker-nätverk.
=> Besök här för att lära dig kontraktstestning från grunden
Rekommenderad läsning
- Hur man skriver ett konsumentavtalstest i JavaScript
- Introduktion till kontraktstestning med exempel
- Verifiera paketavtal och kontinuerlig distribution med pakten CLI
- Docker-handledning: Installation och introduktion till Docker
- Avancerat skript för komplexa testarbetsflöden i brevbäraren
- Hur skapar man API-dokumentation i brevbäraren?
- Hur använder jag Postman för att testa olika API-format?
- Topp 10 mest populära brevbilsintervjuer med svar