Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Gatling | Arm yourself for performance

Gatling | Arm yourself for performance

Load test tool we use in Loyalty team

Patrik Mihalcin

May 10, 2016
Tweet

More Decks by Patrik Mihalcin

Other Decks in Programming

Transcript

  1. Agenda ˂ Why? ˂ Gatling overview ˂ Killer features ˂

    Nifty features ˂ Concepts ˂ How we use Gatling in Loyalty ˂ Demo time… ˂ Your questions? <2>
  2. <4>

  3. Gatling overview <5> ˂ Async Scala Akka Netty based load

    test tool ˂ designed asynchronous & resource-efficient in nature
  4. Addressing problems ˂ 1 thread = 1 user ˂ blocking

    I/O ˂ think time = Thread.sleep(…); <6>
  5. Solving the pain ˂ high performance ˂ do I need

    a cluster of injectors? ˂ usability ˂ do I need GUI? ˂ maintainability ˂ I want to store load tests in Git <7>
  6. Killer features ˂ you write code, no huge xml dumps

    in Git ˂ friendly expressive DSL ˂ cool comprehensive reports <8>
  7. Nifty features ˂ http://gatling.io/#/cheat-sheet/2.2.0 ˂ very good support for build

    tooling ˂ recorder ˂ you just set up browser as a proxy and it will act as a man in the middle <10>
  8. Concepts ˂ simulation | collection of scenarios ˂ data feeders,

    Gatling EL ˂ injection profile ˂ assertions ˂ error handling, retry mechanism <11>
  9. Actions & checks ˂ actions: ˂ http ˂ jms ˂

    server sent events ˂ websockets ˂ engine is protocol agnostic, can be extended ˂ checks ˂ regex ˂ xpath ˂ lambdas ˂ css selectors ˂ jsonpath ˂ and others: http://gatling.io/#/cheat-sheet/2.2.0 <12>
  10. How we use Gatling in Loyalty ˂ simulate incoming JMS

    msgs, WSs, UI actions against Loyalty app in Dockerized Azure IaaS ˂ page object pattern to organize tests and for easy maintenance ˂ tests are part of continuous testing cycle in Teamcity ˂ use dynamic data in order to rule out pesticide paradox and server side optimizations ˂ system responsiveness (hourly rates of incoming messages) ˂ execute multiple requests at once in order to rule out concurrency issues – WS retry mechanism ˂ system resiliency - how we actually go about OptimisticLockExceptions <13>