Blogg

Här finns tekniska artiklar, presentationer och nyheter om arkitektur och systemutveckling. Håll dig uppdaterad, följ oss på Twitter

Callista medarbetare Jan Västernäs

Peter Merikan använder Karate i sina projekt

// Jan Västernäs

Peter du har jobbat lite med Karate?
Ja, det stämmer.

Vad är Karate?
Det är ett ramverk för test av HTTP-ändpunkter, t.ex. REST-apier som vi jobbar mycket med. Ursprungligen är det baserat på Cucumber som många säkert känner till, men det har utvecklats en hel del sedan dess. Det är utvecklat i Java sedan 2017. Dataformat som stöds är json, xml och csv. Gherkin används som syntax för att skriva testerna, ofta följer det ett Given, When, Then-mönster.

Finns det någon distinkt skillnad jmfört med cucumber?
Till skillnad från Cucumber behöver ingen kod i Java skrivas, Gherkin-scriptet räcker för att definiera testet till 100%. Det känns som en stor fördel.

Hur jobbar man med karate? Man skriver sin syntax i Gherkin och då kan det se ut så här med ett mycket enkelt test. Vi gör en POST och verifierar att returkoden är 201 och att responsen innehåller det skapade objektet.

Sedan exekverar man, och det går även att titta på resultat i en browser så här:

Hur gör man för att få in testerna i sin byggprocess?
Man använder JUnit för att köra testerna och då blir det ju en del av bygget med automatik, precis som för andra tester.

Några problem du upplevt?
Ibland kan det vara svårt att lista ut vad som gått fel i ett test. För att underlätta felsökning kan man använd loggning. Manualen upplevs ibland som lite ostrukturerad. Det är i stort sätt bara en person som ligger bakom och det kan ju vara en svaghet, men det är ju öppen källkod.

Hur moget tycker du att ramverket är?
Det känns ganska moget numera. Jag började använda det redan 2018, när jag skrev om några SOAP tester, och det hat hänt en hel del sedan dess. Version 1.0 släpptes i våras.

Det finns ju många testramverk, finns det några fördelar med Karate som du tycker gör det värt att använda?
Som vi sa innan så behövs ingen extra kodning i Java. Det blir mycket enklare på det viset. En annan fördel är att en testare kan lära sig att skriva Gherkin-syntax utan att vara utvecklare. Ytterligare en fördel tycker jag är att man kan speca en tabell med input-värden och det förväntade resultatet. Det är mycket enklare än att behöva kopiera ett test många gånger.

Du berättade om detta på ett kompetensmöte?
Ja, och det verkade som kollegorna gillade vad de såg.

Tack Peter!

Tack för att du läser Callistas blogg.
Hjälp oss att nå ut med information genom att dela nyheter och artiklar i ditt nätverk.

Kommentarer