%% Last Updated: - [[2021-02-13]] - [[2020-12-11]] %% Speaker: [[Stéphane Landelle]] Host: [[Joe Colantonio]] on [[Podcast/Test Guild Performance (series)]] URL: https://testguild.com/podcast/performance/p35-stephane/ <iframe src="https://html5-player.libsyn.com/embed/episode/id/14571164/height/90/theme/custom/thumbnail/yes/direction/backward/render-playlist/no/custom-color/87A93A"></iframe> - [[Gatling Corp]]: - [[Gatling]] OSS tool - [[Gatling Frontline]] (SaaS) - professional services - How popular is Gatling? (in 2017) - It's been downloaded 700,000 times since the beginning. - Based in [[France]] - Gatling is opinionated - Test feedback should be quick. - Reusable components, versioning, peer review, continuous integration - Testing is not just a testers' responsibility. Developers should also be able to participate. - Speed = Text. - [[When it comes to speed and performance, text is king.]] - Functional: JUnit, Selenium, Cucumber. - We should be able to achieve it for load testing too - We need a [[DSL]] and actual code - Performance and threads - The poor performance was coming from the load test, and not the SUT - Gatling has a different threading model. - VU = dedicated thread in most tools. - Increasing number of VU (thousands) will show the issues in this quickly - Blocking I/Os is not efficient. Most tools spend a lot of time waiting for messages and it's a waste. - [[The 1 Thread=1 Virtual User Paradigm is flawed]] - Think time - Sleep method is a waste - [[Message-oriented architecture]] - [[Akka framework]] (JVM) - [[Netty framework]] for I/O - There are no threads for VUs, just messages. On an 8 core machine, Gatling would only run with 40 threads. - 100,000 rps on Gatling with 1,000 VUs - Metrics [[Analyzing load testing results]] - Average value is a poor metric - [[Standard Deviation]], but even that only works for [[Normal distribution]] -- which never happens in real life - Response time distribution is what we really need to know: percentiles - But some tools show you averages of percentiles. When data is aggregated and then averaged out, it loses significance. - You end up with smooth curves with very reassuring results, but there are hiccups that are being masked. - Integration - [[Scala]] allows Gatling to integrate very well with IDEs like [[IntelliJ]] and [[Eclipse]], and build tools like [[Maven]] - versioning [[Git]] - continuous integration [[Jenkins]], [[Bamboo]] - Acceptance criteria - Installation and requirements - [[Java]], [[Scala]] -