Onderwijsbedrijf verzekert stabiliteit van microservices met behulp van contracttesten met het Pact Framework

CASESTUDY

Industrie – Onderwijs

Locatie – India

Aangeboden diensten – QA-consult

CASESTUDY OVER HET TESTEN VAN MICROSERVICESCONTRACTEN

Met behulp van Zuci’s microservices testdienst, stapte de leider in de wereldwijde educatieve dienstverlening over op een API-first benadering en consumentgestuurd testen om parallel werk mogelijk te maken en teams te ontkoppelen.

Onze klant is een van de toonaangevende wereldwijde onderwijsdiensten, die mensen helpt hun internationale onderwijsdoelen te bereiken. De klant heeft meer dan 70 kantoren verspreid over 61 steden in India die studenten en hun gezinnen begeleiden bij het hele proces van studeren in het buitenland – selectie van universiteiten/cursussen, indienen van aanvragen, hulp bij het visumproces en planning vóór vertrek.

OVER KLANT

PROBLEEMSTELLING

Het platform van het bedrijf is gebouwd met behulp van een microservicesarchitectuur, wat betekent dat elke service onafhankelijk wordt ontwikkeld en ingezet.
Naarmate het platform zich uitbreidde, zag het bedrijf het belang in van het ontwerpen van efficiënte contracten op een consumentgerichte manier om effectieve communicatie tussen de verschillende diensten te garanderen. Bovendien moesten ze voorkomen dat veranderingen in de ene service de functionaliteit van een andere service nadelig zouden beïnvloeden.

Consument-gedreven contracten: Bij het ontwerpen van een API worden de syntax en semantiek ontworpen door het API producer team in nauwe samenwerking met de teams die de API zullen gebruiken, in tegenstelling tot het API producer team dat aannames doet op basis van het datamodel over hoe de API eruit zou moeten zien. 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 mocks te testen door verzoeken te sturen naar zowel de mocks als de echte microservices. De klant was op zoek naar geautomatiseerde testexperts die hen konden helpen met deze testeisen en het vertrouwen konden vergroten dat een nieuwe release van een microservice geen brekende 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 mocks die waren gemaakt door de API-producenten gedeeld met de API-consumenten.

Ons team gebruikte het PACT-raamwerk om de contracten uit te voeren. Hier volgt 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 consument-gedreven contract test framework 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 pacttest is ontworpen om het overeengekomen contract tussen de ene dienst en de andere te beschrijven vanuit het perspectief van de consument.

We vergeleken de antwoorden met een contractdefinitie van verwachte verzoek/antwoordparen, zoals gedefinieerd in een aangepaste indeling die specifiek is voor het bedrijf. Hierdoor konden we controleren of zowel de API mocks als de echte service up-to-date waren in vergelijking met de laatste definitie van verwacht gedrag in het contractbestand.

Deze oplossing bleek effectief in het wegnemen van de bottleneck 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