29
Oružje u redovima Oružje u redovima performansnog testiranja Andrija Kranjec

Gatling - oružje u redovima performansnog testiranja

Embed Size (px)

Citation preview

Page 1: Gatling - oružje u redovima performansnog testiranja

Oružje u redovima Oružje u redovima performansnog testiranja

Andrija Kranjec

Page 2: Gatling - oružje u redovima performansnog testiranja

Agenda

• Što je Gatling?

• Problemi kod alata za testiranje

• Gatling kao rješenje

• Demo• Demo

• Testiranje JVM aplikacija

Page 3: Gatling - oružje u redovima performansnog testiranja

Što je Gatling?

Sliku ustupio Dean Sekulić (Croteam)

Page 4: Gatling - oružje u redovima performansnog testiranja

Gatling je alat za simulaciju opterećenja na testiranoj aplikaciji,

provodi pripadna mjerenja i provodi pripadna mjerenja i prezentira rezultate provedenog

performansnog testiranja.

Page 5: Gatling - oružje u redovima performansnog testiranja

Još jedan u nizu alata

Page 6: Gatling - oružje u redovima performansnog testiranja

Problemi kod alata za testiranjeProblemi kod alata za testiranje

Page 7: Gatling - oružje u redovima performansnog testiranja

Cijena

Photo by Siphiwe Sibeko / Reuters

Page 8: Gatling - oružje u redovima performansnog testiranja

1 dretva = 1 korisnik

Photo by Alessandro Garofalo / Reuters

Page 9: Gatling - oružje u redovima performansnog testiranja

Dretve čekaju…

Photo by Larry Downing / Reuters

Page 10: Gatling - oružje u redovima performansnog testiranja

…i spavaju.

Photo by Stringer Shanghai / Reuters

Page 11: Gatling - oružje u redovima performansnog testiranja

Komplicirano sučelje

Photo by Ben Cooper

Page 12: Gatling - oružje u redovima performansnog testiranja

• Baziran na Actor Modelu

• Asinkron• Koristi Non-Blocking algoritme

Gatling kao rješenje

• Koristi Non-Blocking algoritme

Page 13: Gatling - oružje u redovima performansnog testiranja

Lako pisanje testova*Lako pisanje testova**pod uvjetom da ste programer

Page 14: Gatling - oružje u redovima performansnog testiranja

Testovi se pišu korištenjem Gatling DSL-a koji je implementiran u Scala programskom jeziku.

Page 15: Gatling - oružje u redovima performansnog testiranja

Definiranje scenarija - opisuju ponašanja virtualnih korisnikascenarioexec / group / pause / pauseExp / pauseCustomdoIf / doIfOrElse / randomSwitch / roundRobinSwitchrepeat / during / asLongAs / foreachtryMax / exitBlockOnFail / exitHereIfFailed

Definiranje feedera - ubacivanje podataka u scenarijcsv / tsv / ssv / jdbc / redisFeeder

Gatling DSL

csv / tsv / ssv / jdbc / redisFeederqueue / random / circular

Konfiguracija scenarija - manipulacija izvršavanjausers / ramp / delay / protocolConfig

HTTP akcije - upravljanje HTTP zahtjevimahttpget / post / put / delete / headqueryParam / header / headers / basicAuthbody / fileBody / byteArrayBody / param / upload

Page 16: Gatling - oružje u redovima performansnog testiranja

Provjere - provjera sadržaja odgovoracheckstatus / currentLocation / header / headerRegex / responseTimeInMillis / latencyInMillisregex / xpath / jsonPath / css / md5 / sha1find / findAll / counttransformis / not / exists / notExists / in / whateversaveAs

HTTP konfiguracija – upravljanje Gatlingovim HTTP klijentom

Gatling DSL

HTTP konfiguracija – upravljanje Gatlingovim HTTP klijentomhttpconfigbaseURL / baseURLs / proxy / httpsPort / credentialsacceptHeader / acceptCharsetHeader / acceptEncodingHeader / acceptLanguageHeader / hostHeader / userAgentHeaderdisableFollowRedirect / disableAutomaticReferer / disableWarmUp / warmUprequestInfoExtractor / responseInfoExtractor / disableResponseChunksDiscarding

Page 17: Gatling - oružje u redovima performansnog testiranja

Assertions – postavljanje nefunkcionalnih zahtjeva na razini scenarijaassertThatglobal / detailsresponseTime / allRequests / failedRequests / successfulRequests /requestsPerSecmin / max / mean / stdDev / percentiles1 / percentiles2percent / countlessThan / greaterThan / between / is / in / assert

Gatling DSL

Page 18: Gatling - oružje u redovima performansnog testiranja

Napiši jednomNapiši jednom

Page 19: Gatling - oružje u redovima performansnog testiranja

Recikliraj stare testove

Photo by Stringer Shanghai / Reuters

Page 20: Gatling - oružje u redovima performansnog testiranja

Nema izlike za sistemaše...Nema izlike za sistemaše...

Page 21: Gatling - oružje u redovima performansnog testiranja

…postoji recorder.

Page 22: Gatling - oružje u redovima performansnog testiranja

Izvještaji

Page 23: Gatling - oružje u redovima performansnog testiranja
Page 24: Gatling - oružje u redovima performansnog testiranja

DemoDemo

Page 25: Gatling - oružje u redovima performansnog testiranja

Planirajte opterećenje

Izvor http://www.zadarskilist.hr/

Page 26: Gatling - oružje u redovima performansnog testiranja

Opteretili smo aplikaciju, a što dalje?Opteretili smo aplikaciju, a što dalje?

Page 27: Gatling - oružje u redovima performansnog testiranja

Monitoring JVM aplikacije

• CPU

• Heap memorija

• Garbage collector rate

• Thread pool

• Webcontainer pool• Webcontainer pool

• JDBC (time, connection pool,..)

• Prepare statement cache

• Response time portleta/servleta

Page 28: Gatling - oružje u redovima performansnog testiranja

Demo - rezultatiDemo - rezultati

Page 29: Gatling - oružje u redovima performansnog testiranja

Pitanja?