how publish pact contract pact broker
Deze tutorial legt twee opties uit om de Pact Broker op te zetten. U kunt het pactcontract publiceren naar de pactmakelaar met behulp van het pact-js-raamwerk en met Postman:
beste schrijf-apps voor Windows 10
Wat is Pact Broker?
Pact Broker is een tool die wordt aangeboden door de makers van het Pact-framework. Het vergemakkelijkt het opslaan van contracten, het visualiseren van consumenten en de verificatie van de contractstatus.
De reden om een aparte makelaar te hebben om de contracten op te slaan, is omdat elke set tests vaak in verschillende opslagplaatsen en zelfs in verschillende talen is geschreven.
Ontdek hier de eenvoudige trainingsserie voor contracttesten
Wat je leert:
Publiceer pactcontract met pactmakelaar
Voordat we ingaan op het publiceren van een contract, moet u een beslissing nemen of u de pactbroker zelf wilt hosten of een gehoste service wilt gebruiken zoals Pactflow
Persoonlijk hebben we voor Pactflow gekozen omdat dit de extra voordelen biedt zoals weergegeven in onderstaande tabel:
Voorzien zijn van | Pactflow | Zelf gehost |
---|---|---|
SSO (Github) | Ja | Niet doen |
Server onderhoud | Niet doen | Ja |
Beveiligde tokens / geheimen | Ja | Niet doen |
Webhooks | UI configureerbaar | Handmatige config |
Infrastructuur als code | Terraform | Dockerfile |
Pact Broker opzetten met Pactflow
Pactflow biedt een gratis optie die u pas in rekening brengt na de proefperiode van 180 maanden (vanaf mei 2020), dat is 10 en een half jaar.
- Registreer uw e-mailadres bij Pactflow (merk op dat u later altijd extra gebruikers kunt toevoegen).
- Stel de bedrijfsinformatie en het subdomein in voor uw pactmakelaar.
- U zou nu een e-mail moeten ontvangen met uw tijdelijke gebruikersnaam en wachtwoord.
- Navigeer naar uw subdomein (hier is mijn subdomein ) en log in. Als dit is gelukt, zou je de voorbeeld-app moeten zien met een al ingesteld contract.
We zullen later in de tutorial bekijken hoe we kunnen verifiëren tegen contracten binnen Pactflow.
Pact Broker instellen met Docker (Docker-compose)
Pact biedt docker-afbeeldingen om eenvoudig binnen enkele seconden uw eigen Pact Broker op te starten met docker-compose. De github-opslagplaats legt uit hoe dit kan worden gedaan, laten we hier later in detail op ingaan.
Enkele aanvullende stappen die zijn toegevoegd om ervoor te zorgen dat de service stabiel is, worden hieronder gegeven:
- Voeg 'herstart: altijd' toe aan het docker-compose Diensten.
- Start docker-compose op de server met behulp van het `-d` ontkoppelde argument om het op de achtergrond te laten draaien.
Publicatiecontract met pact-js
Elke taalimplementatie van het Pact heeft zijn eigen methoden voor het publiceren van de contracten aan de makelaar. Als u in JavaScript naar de Pact Broker publiceert, zou de configuratie er ongeveer zo uit moeten zien.
Het hierboven getoonde Pact Broker-token wordt opgeslagen in Pactflow onder instellingen. Screenshots worden hieronder getoond. Zorg ervoor dat u het CI-token gebruikt dat machtigingen heeft voor lezen en schrijven.
Ga naar Instellingen en vervolgens API-tokens in Pactflow.
Waarschijnlijk zouden geheimen en wachtwoorden niet in git moeten worden opgeslagen, daarom moet een `.env` -bestand worden gebruikt en er moet in de code naar worden verwezen met iets zoals hieronder weergegeven.
Samen met de 'PublishVerificationResult' waarde, u wilt geen contracten verifiëren in uw lokale omgeving. Daarom moet een andere omgevingsvariabele worden ingesteld, zoals hieronder wordt weergegeven.
Nu kan het contract rechtstreeks in de code worden gepubliceerd.
Publicatiecontract met postbode
Om het eerste contract te verifiëren, gebruiken we meestal Postman om ervoor te zorgen dat de makelaar correct is ingesteld. Postbode is ook gebruikt toen de consumenten traag waren om Pact binnen hun team te adopteren, dus hebben we het contract aan de Pact Broker gepubliceerd en het consumententeam gevraagd om te verifiëren of ze tevreden zijn met het contract.
Hierdoor konden wij als leveranciersteam verifiëren aan de hand van het contract en meer vertrouwen hebben in onze implementaties. Ook toen het consumententeam klaar was om Pact over te nemen, hadden ze al een werkend voorbeeld om te gebruiken.
De stappen voor het publiceren van Postman worden hieronder gegeven:
# 1) PUT: construeer het verzoek
- Navigeer naar het subdomein
- Provider naam
- Consumentennaam
- Versie
# 2) Autorisatie: voeg het bearer-token toe (wat equivalent is aan het API-token zoals hierboven vermeld)
# 3) Neem de Pact JSON op als de body (de JSON kan rechtstreeks naar het body-veld worden gekopieerd, waarbij je ervoor zorgt dat de Content: Type-header op 'application / json' staat).
Pacten delen met API-providers
Zodra uw contracten zijn gepubliceerd, kan de aanbieder het pactcontract opvragen door de URL van de pactmakelaar op te vragen met:
Meestal wilt u verifiëren met een specifieke versie van de API. Bijvoorbeeld, in een microservices-architectuur brengt het consumententeam voortdurend wijzigingen aan in de informatie die ze van de API nodig hebben.
Daarnaast brengt de API-provider tegelijkertijd wijzigingen aan, en ze zullen moeten verifiëren met de versie die momenteel wordt geïmplementeerd voor productie, omdat dit een naadloze implementatie garandeert.
Gevolgtrekking
Ten slotte heb je een pactbroker met een gepubliceerd contract, in de volgende tutorial zullen we bekijken hoe je je providertest kunt schrijven door een .Net Core API in te pakken, het nieuwste contract op te halen en te verifiëren met de lokale API.
Het Pact-raamwerk is niet alleen waardevol bij de start van uw project, op een consumentgerichte manier, maar het voordeel van het visualiseren van uw consumenten met de Pactbroker is zeker een belangrijke bijdrage aan het gebruik van deze tool.
Ook kan het vermogen om de interacties met de consument beter te begrijpen en hoe de API daadwerkelijk wordt gebruikt, vaak verloren gaan bij de vertaling en kan dit resulteren in een productieprobleem dat kan optreden. Dit leidt tot urenlang debuggen en trawlelen door de toepassingslogboeken.
In deze tutorial hebben we twee verschillende opties geleerd om uw pactbroker in te stellen. U hebt uw contract gepubliceerd met behulp van het pact-js-raamwerk en ook met Postman.
Op dit punt moet u nadenken over het afstemmen van uw versies op de microservices en ook over het consequent benoemen van uw providers om een gemakkelijk te lezen en begrijpelijk Pact Broker-netwerk te creëren.
Bezoek hier om contracttesten vanaf het begin te leren
Aanbevolen literatuur
- Hoe een consumentenpacttest in JavaScript te schrijven
- Inleiding tot contracttesten met voorbeelden
- Verifieer pactcontract en continue implementatie met Pact CLI
- Docker-zelfstudie: installatie en inleiding tot Docker
- Geavanceerde scripts voor complexe testworkflows in Postman
- Hoe API-documentatie te maken in Postman?
- Hoe Postman te gebruiken voor het testen van verschillende API-indelingen?
- Top 10 meest populaire postbode interviewvragen met antwoorden