SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
Oružje u redovimaOružje u redovima
performansnog testiranja
Andrija Kranjec
Agenda
• Što je Gatling?
• Problemi kod alata za testiranje
• Gatling kao rješenje
• Demo• Demo
• Testiranje JVM aplikacija
Što je Gatling?
Sliku ustupio Dean Sekulić (Croteam)
Gatling je alat za simulaciju
opterećenja na testiranoj aplikaciji,
provodi pripadna mjerenja iprovodi pripadna mjerenja i
prezentira rezultate provedenog
performansnog testiranja.
Još jedan u nizu alata
Problemi kod alata za testiranjeProblemi kod alata za testiranje
Cijena
Photo by Siphiwe Sibeko / Reuters
1 dretva = 1 korisnik
Photo by Alessandro Garofalo / Reuters
Dretve čekaju…
Photo by Larry Downing / Reuters
…i spavaju.
Photo by Stringer Shanghai / Reuters
Komplicirano sučelje
Photo by Ben Cooper
• Baziran na Actor Modelu
• Asinkron
• Koristi Non-Blocking algoritme
Gatling kao rješenje
• Koristi Non-Blocking algoritme
Lako pisanje testova*Lako pisanje testova*
*pod uvjetom da ste programer
Testovi se pišu korištenjem Gatling DSL-a
koji je implementiran u Scala programskom
jeziku.
Definiranje scenarija - opisuju ponašanja virtualnih korisnika
scenario
exec / group / pause / pauseExp / pauseCustom
doIf / doIfOrElse / randomSwitch / roundRobinSwitch
repeat / during / asLongAs / foreach
tryMax / exitBlockOnFail / exitHereIfFailed
Definiranje feedera - ubacivanje podataka u scenarij
csv / tsv / ssv / jdbc / redisFeeder
Gatling DSL
csv / tsv / ssv / jdbc / redisFeeder
queue / random / circular
Konfiguracija scenarija - manipulacija izvršavanja
users / ramp / delay / protocolConfig
HTTP akcije - upravljanje HTTP zahtjevima
http
get / post / put / delete / head
queryParam / header / headers / basicAuth
body / fileBody / byteArrayBody / param / upload
Provjere - provjera sadržaja odgovora
check
status / currentLocation / header / headerRegex / responseTimeInMillis / latencyInMillis
regex / xpath / jsonPath / css / md5 / sha1
find / findAll / count
transform
is / not / exists / notExists / in / whatever
saveAs
HTTP konfiguracija – upravljanje Gatlingovim HTTP klijentom
Gatling DSL
HTTP konfiguracija – upravljanje Gatlingovim HTTP klijentom
httpconfig
baseURL / baseURLs / proxy / httpsPort / credentials
acceptHeader / acceptCharsetHeader / acceptEncodingHeader / acceptLanguageHeader /
hostHeader / userAgentHeader
disableFollowRedirect / disableAutomaticReferer / disableWarmUp / warmUp
requestInfoExtractor / responseInfoExtractor / disableResponseChunksDiscarding
Assertions – postavljanje nefunkcionalnih zahtjeva na razini scenarija
assertThat
global / details
responseTime / allRequests / failedRequests / successfulRequests /requestsPerSec
min / max / mean / stdDev / percentiles1 / percentiles2
percent / count
lessThan / greaterThan / between / is / in / assert
Gatling DSL
Napiši jednomNapiši jednom
Recikliraj stare testove
Photo by Stringer Shanghai / Reuters
Nema izlike za sistemaše...Nema izlike za sistemaše...
…postoji recorder.
Izvještaji
DemoDemo
Planirajte opterećenje
Izvor http://www.zadarskilist.hr/
Opteretili smo aplikaciju, a što dalje?Opteretili smo aplikaciju, a što dalje?
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
Demo - rezultatiDemo - rezultati
Pitanja?

Más contenido relacionado

Similar a Gatling - oružje u redovima performansnog testiranja

Vert.x - asinkroni skalabilni i poliglotni framework nove generacije
Vert.x - asinkroni skalabilni i poliglotni framework nove generacijeVert.x - asinkroni skalabilni i poliglotni framework nove generacije
Vert.x - asinkroni skalabilni i poliglotni framework nove generacijeMihovil Rister
 
Vert.x - Mihovil Rister, Javantura
Vert.x - Mihovil Rister, JavanturaVert.x - Mihovil Rister, Javantura
Vert.x - Mihovil Rister, JavanturaFive
 
Zašto nam treba PaaS u Srcu?
Zašto nam treba PaaS u Srcu?Zašto nam treba PaaS u Srcu?
Zašto nam treba PaaS u Srcu?Denis Kranjčec
 
GraphQL & Laravel - Efikasni API servisi
GraphQL & Laravel - Efikasni API servisiGraphQL & Laravel - Efikasni API servisi
GraphQL & Laravel - Efikasni API servisiPedja Jevtic
 
WebUG - Hibridne mobilne aplikacije
WebUG - Hibridne mobilne aplikacijeWebUG - Hibridne mobilne aplikacije
WebUG - Hibridne mobilne aplikacijeMatija Šmalcelj
 
Web App Security for Devs
Web App Security for DevsWeb App Security for Devs
Web App Security for DevsAxilis
 
Web App Security for Devs
Web App Security for DevsWeb App Security for Devs
Web App Security for DevsVedran Maršić
 
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 10.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 10. [TVZ računarstvo] Dinamičke web aplikacije, predavanje 10.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 10. Stipe Predanic
 
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 8.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 8. [TVZ računarstvo] Dinamičke web aplikacije, predavanje 8.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 8. Stipe Predanic
 
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 9.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 9. [TVZ računarstvo] Dinamičke web aplikacije, predavanje 9.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 9. Stipe Predanic
 
Angular 2 and TypeScript - 2016 Dump Day
Angular 2 and TypeScript - 2016 Dump DayAngular 2 and TypeScript - 2016 Dump Day
Angular 2 and TypeScript - 2016 Dump DayNETMedia
 
Mean Stack JavaCro 2014
Mean Stack JavaCro 2014Mean Stack JavaCro 2014
Mean Stack JavaCro 2014Nenad Pecanac
 
AngularJS - Ivan Vučičević
AngularJS - Ivan Vučičević AngularJS - Ivan Vučičević
AngularJS - Ivan Vučičević Kruno Ris
 
Big Brother Hrvatska 2007 - Case Study - BizBuzz
Big Brother Hrvatska 2007 - Case Study - BizBuzzBig Brother Hrvatska 2007 - Case Study - BizBuzz
Big Brother Hrvatska 2007 - Case Study - BizBuzzwebburza
 

Similar a Gatling - oružje u redovima performansnog testiranja (20)

Javantura Zagreb 2014 - Vert.x 1.3 - Mihovil Rister
Javantura Zagreb 2014 - Vert.x 1.3 - Mihovil RisterJavantura Zagreb 2014 - Vert.x 1.3 - Mihovil Rister
Javantura Zagreb 2014 - Vert.x 1.3 - Mihovil Rister
 
Vert.x - asinkroni skalabilni i poliglotni framework nove generacije
Vert.x - asinkroni skalabilni i poliglotni framework nove generacijeVert.x - asinkroni skalabilni i poliglotni framework nove generacije
Vert.x - asinkroni skalabilni i poliglotni framework nove generacije
 
Vert.x - Mihovil Rister, Javantura
Vert.x - Mihovil Rister, JavanturaVert.x - Mihovil Rister, Javantura
Vert.x - Mihovil Rister, Javantura
 
Zašto nam treba PaaS u Srcu?
Zašto nam treba PaaS u Srcu?Zašto nam treba PaaS u Srcu?
Zašto nam treba PaaS u Srcu?
 
GraphQL & Laravel - Efikasni API servisi
GraphQL & Laravel - Efikasni API servisiGraphQL & Laravel - Efikasni API servisi
GraphQL & Laravel - Efikasni API servisi
 
WebUG - Hibridne mobilne aplikacije
WebUG - Hibridne mobilne aplikacijeWebUG - Hibridne mobilne aplikacije
WebUG - Hibridne mobilne aplikacije
 
Web App Security for Devs
Web App Security for DevsWeb App Security for Devs
Web App Security for Devs
 
Web App Security for Devs
Web App Security for DevsWeb App Security for Devs
Web App Security for Devs
 
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 10.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 10. [TVZ računarstvo] Dinamičke web aplikacije, predavanje 10.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 10.
 
JavaCro'15 - Java parallelization - Zlatko Sirotić
JavaCro'15 - Java parallelization - Zlatko SirotićJavaCro'15 - Java parallelization - Zlatko Sirotić
JavaCro'15 - Java parallelization - Zlatko Sirotić
 
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 8.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 8. [TVZ računarstvo] Dinamičke web aplikacije, predavanje 8.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 8.
 
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 9.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 9. [TVZ računarstvo] Dinamičke web aplikacije, predavanje 9.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 9.
 
Angular 2 and TypeScript - 2016 Dump Day
Angular 2 and TypeScript - 2016 Dump DayAngular 2 and TypeScript - 2016 Dump Day
Angular 2 and TypeScript - 2016 Dump Day
 
Mean Stack JavaCro 2014
Mean Stack JavaCro 2014Mean Stack JavaCro 2014
Mean Stack JavaCro 2014
 
AngularJS - Ivan Vučičević
AngularJS - Ivan Vučičević AngularJS - Ivan Vučičević
AngularJS - Ivan Vučičević
 
JavaCro'15 - Java application crashed, now what - Matija Tomašković
JavaCro'15 - Java application crashed, now what - Matija TomaškovićJavaCro'15 - Java application crashed, now what - Matija Tomašković
JavaCro'15 - Java application crashed, now what - Matija Tomašković
 
JavaCro'14 - MEAN Stack – How & When – Nenad Pećanac
JavaCro'14 - MEAN Stack – How & When – Nenad PećanacJavaCro'14 - MEAN Stack – How & When – Nenad Pećanac
JavaCro'14 - MEAN Stack – How & When – Nenad Pećanac
 
Big Brother Hrvatska 2007 - Case Study - BizBuzz
Big Brother Hrvatska 2007 - Case Study - BizBuzzBig Brother Hrvatska 2007 - Case Study - BizBuzz
Big Brother Hrvatska 2007 - Case Study - BizBuzz
 
Oblikovni obrasci
Oblikovni obrasciOblikovni obrasci
Oblikovni obrasci
 
Programski jezik java
Programski jezik javaProgramski jezik java
Programski jezik java
 

Gatling - oružje u redovima performansnog testiranja

  • 1. Oružje u redovimaOružje u redovima performansnog testiranja Andrija Kranjec
  • 2. Agenda • Što je Gatling? • Problemi kod alata za testiranje • Gatling kao rješenje • Demo• Demo • Testiranje JVM aplikacija
  • 3. Što je Gatling? Sliku ustupio Dean Sekulić (Croteam)
  • 4. Gatling je alat za simulaciju opterećenja na testiranoj aplikaciji, provodi pripadna mjerenja iprovodi pripadna mjerenja i prezentira rezultate provedenog performansnog testiranja.
  • 5. Još jedan u nizu alata
  • 6. Problemi kod alata za testiranjeProblemi kod alata za testiranje
  • 7. Cijena Photo by Siphiwe Sibeko / Reuters
  • 8. 1 dretva = 1 korisnik Photo by Alessandro Garofalo / Reuters
  • 9. Dretve čekaju… Photo by Larry Downing / Reuters
  • 10. …i spavaju. Photo by Stringer Shanghai / Reuters
  • 12. • Baziran na Actor Modelu • Asinkron • Koristi Non-Blocking algoritme Gatling kao rješenje • Koristi Non-Blocking algoritme
  • 13. Lako pisanje testova*Lako pisanje testova* *pod uvjetom da ste programer
  • 14. Testovi se pišu korištenjem Gatling DSL-a koji je implementiran u Scala programskom jeziku.
  • 15. Definiranje scenarija - opisuju ponašanja virtualnih korisnika scenario exec / group / pause / pauseExp / pauseCustom doIf / doIfOrElse / randomSwitch / roundRobinSwitch repeat / during / asLongAs / foreach tryMax / exitBlockOnFail / exitHereIfFailed Definiranje feedera - ubacivanje podataka u scenarij csv / tsv / ssv / jdbc / redisFeeder Gatling DSL csv / tsv / ssv / jdbc / redisFeeder queue / random / circular Konfiguracija scenarija - manipulacija izvršavanja users / ramp / delay / protocolConfig HTTP akcije - upravljanje HTTP zahtjevima http get / post / put / delete / head queryParam / header / headers / basicAuth body / fileBody / byteArrayBody / param / upload
  • 16. Provjere - provjera sadržaja odgovora check status / currentLocation / header / headerRegex / responseTimeInMillis / latencyInMillis regex / xpath / jsonPath / css / md5 / sha1 find / findAll / count transform is / not / exists / notExists / in / whatever saveAs HTTP konfiguracija – upravljanje Gatlingovim HTTP klijentom Gatling DSL HTTP konfiguracija – upravljanje Gatlingovim HTTP klijentom httpconfig baseURL / baseURLs / proxy / httpsPort / credentials acceptHeader / acceptCharsetHeader / acceptEncodingHeader / acceptLanguageHeader / hostHeader / userAgentHeader disableFollowRedirect / disableAutomaticReferer / disableWarmUp / warmUp requestInfoExtractor / responseInfoExtractor / disableResponseChunksDiscarding
  • 17. Assertions – postavljanje nefunkcionalnih zahtjeva na razini scenarija assertThat global / details responseTime / allRequests / failedRequests / successfulRequests /requestsPerSec min / max / mean / stdDev / percentiles1 / percentiles2 percent / count lessThan / greaterThan / between / is / in / assert Gatling DSL
  • 19. Recikliraj stare testove Photo by Stringer Shanghai / Reuters
  • 20. Nema izlike za sistemaše...Nema izlike za sistemaše...
  • 23.
  • 26. Opteretili smo aplikaciju, a što dalje?Opteretili smo aplikaciju, a što dalje?
  • 27. 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
  • 28. Demo - rezultatiDemo - rezultati