Educational Services Company zorgt voor stabiliteit van microservices met behulp van contracttesten met het Pact Framework

CASE-STUDY

Industrie – Gezondheidszorg

Locatie – San Francisco, VS

Aangeboden diensten – Testen van mobiele apps

MICROSERVICES CONTRACT TESTEN CASE STUDY

Met behulp van de microservices-testservice van Zuci stapte de leider in de wereldwijde onderwijsservices over op API-first-benadering en consumentgestuurd testen om parallel werken mogelijk te maken en teams los te koppelen.

Onze klant is een van de toonaangevende wereldwijde onderwijsdiensten en helpt mensen hun internationale onderwijsdoelen te bereiken. De klant heeft meer dan 70 kantoren in meer dan 61 steden in India die studenten en hun families begeleiden tijdens het hele studieproces in het buitenland – selectie van universiteit/cursus, indiening van de aanvraag, hulp bij het visumproces en planning vóór vertrek.

OVER KLANT

PROBLEEMSTELLING

Het platform van het bedrijf is gebouwd met behulp van een microservices-architectuur, wat betekent dat elke service onafhankelijk wordt ontwikkeld en geïmplementeerd.
Naarmate het platform uitbreidde, erkende het bedrijf het belang van het ontwerpen van efficiënte contracten op een consumentgerichte manier om effectieve communicatie tussen verschillende diensten te garanderen. Bovendien moesten ze zich beschermen tegen wijzigingen in de ene service die de functionaliteit van een andere service negatief zouden beïnvloeden.

Consumentgestuurde contracten: bij het ontwerpen van een API worden de syntaxis en semantiek ontworpen door het API-producerteam in nauwe samenwerking met de teams die de API zullen gebruiken, in tegenstelling tot het API-producerteam dat aannames doet op basis van het datamodel van hoe de API zou moeten kijken. De API-consumententeams bepalen de vorm van de API’s.

Om te voorkomen dat hun mocks verouderd raken en om hun agressieve deadlines te halen, heeft het bedrijf besloten om de API-mockets te testen door verzoeken naar zowel de mocks als de eigenlijke microservices te sturen. De klant was op zoek naar geautomatiseerde testexperts die hen konden helpen met deze testvereisten en het vertrouwen konden vergroten dat een nieuwe release van een microservice geen ingrijpende API-wijzigingen in de productieomgeving zou introduceren.

HOE ZUCI HEEFT GEHOLPEN

De producententeams hebben API’s ontworpen voor gebruik door andere teams. Om contractbeheer tussen teams te vergemakkelijken en parallel werk mogelijk te maken, werden API-modellen gemaakt door de API-producenten gedeeld met de API-consumenten.

Ons team gebruikte het PACT-raamwerk om de contracten uit te voeren. Hier is een overzicht van de PACT-teststroom.

HOE ZUCI HEEFT GEHOLPEN

HOE ZUCI HEEFT GEHOLPEN

PACT (een acroniem voor People, Activities, Contexts, Technologies) is een open-source consumentgestuurd contracttestraamwerk dat is ontworpen om gedistribueerde systemen te testen. Het is een code-first tool voor het testen van HTTP- en berichtintegraties met behulp van een aanpak die bekend staat als contracttests. Een Pact-test is bedoeld om het overeengekomen contract tussen de ene dienst en de andere te beschrijven vanuit het perspectief van de consument.

We hebben de antwoorden vergeleken met een contractdefinitie van verwachte verzoek/antwoord-paren, zoals gedefinieerd in een aangepast formaat dat specifiek is voor het bedrijf. Hierdoor konden we verifiëren dat zowel de API-modellen als de echte service up-to-date waren in vergelijking met de meest recente definitie van verwacht gedrag zoals beschreven in het contractbestand.

Deze oplossing bleek effectief te zijn bij het wegnemen van het knelpunt van testcontracten, waardoor de teams hun focus konden verleggen naar het leveren van functies aan klanten.

BEDRIJFSRESULTAAT

TECH STACK

ZUCI GEEFT JE TEAM QA SUPERKRACHTEN

U KUNT DUS TIJD BESTEDEN AAN HET BOUWEN VAN UW PRODUCT, ZONDER ZORGEN OVER RELEASESCHEMA’S