- Author: [[Jérôme Loisel]] via [[OctoPerf]] - Full Title: JMeter vs Gatling Tool - Tags:: [[Gatling vs JMeter]] [[Gatling]] [[JMeter]] [[Load testing tool comparison]] - URL: https://octoperf.com/blog/2015/06/08/jmeter-vs-gatling/ - ### Highlights first synced by [[Readwise]] [[2020-12-10]] - Project History: which tools is improved and maintained more actively, Features: which of the two has the most features, Setup: how each tool can be installed, Documentation: which tool does have the most complete documentation, Scripting: compares how to design scripts with both tool, Performance ([View Highlight](https://instapaper.com/read/1368934176/14835164)) - > JMeter has been first released in 1998, ([View Highlight](https://instapaper.com/read/1368934176/14835170)) - [[Jérôme Loisel]] - > JMeter has more than 10.000 commits representing almost 500K lines of code. 33 people contributed to the project so far. [[Philippe Mouawad]]. is one of the biggest contributor to the project, mostly in Java. He is the founder of [[UbikLoadPack]], a French company offering commercial JMeter plugins. ([View Highlight](https://instapaper.com/read/1368934176/14835178)) - [[Jérôme Loisel]] - [[Gatling]] Tool has been first released on December 20, 2011. Gatling is a younger project, with almost 4 years old codebase. Gatling is mostly written in [[Scala]]. ([View Highlight](https://instapaper.com/read/1368934176/14835183)) - > [[Stéphane Landelle]] is the main contributor and creator of Gatling tool. More than 60 people contributed to this project. Its size is almost 50K lines of code. ([View Highlight](https://instapaper.com/read/1368934176/14835187)) - JMeter has obviously a great support for many different protocols: Ability to load and performance test many different applications/server/protocol types: Web: HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …), SOAP / REST Webservices, FTP, Database via JDBC, LDAP, Message-oriented middleware (MOM) via JMS, Mail - SMTP(S), POP3(S) and IMAP(S), ([View Highlight](https://instapaper.com/read/1368934176/14835206)) - Gatling Tool Features Gatling has the following interesting features: Standalone HTTP Proxy Recorder, Scala-based scripting, An expressive self-explanatory DSL for test development, asynchronous non-blocking engine for maximum performance, Excellent support of HTTP(S) protocols and can also be used for JDBC and JMS load testing, ([View Highlight](https://instapaper.com/read/1368934176/14835216)) - JMeter and Gatling tool both require a Java JRE installed on the machine. ([View Highlight](https://instapaper.com/read/1368934176/14835218)) - I would definitely recommend to use Scala IDE to edit Gatling Simulations. Intellij IDEA originally designed for Java also supports Scala via a plugin. ([View Highlight](https://instapaper.com/read/1368934176/14835223)) - JMeter uses the One Thread = One User Paradigm. It means that each simulated virtual user inside the load generator equals to a single thread. Wait times are simulated by Thread.sleep. The user waits for the server response when sending a request. This is sometimes called Synchronous processing. ([View Highlight](https://instapaper.com/read/1368934176/14835240)) - [[The 1 Thread=1 Virtual User Paradigm is flawed]] - Gatling uses a more advanced engine based on Akka. Akka is a distributed framework based on the actor model. It allows fully asynchronous computing. Actors are small entities communicating with other actors through messaging. It can simulate multiple virtual users with a single Thread. Gatling also makes use of Async HTTP Client. Gatling is technically superior to JMeter. The programming model is definitely more innovant. ([View Highlight](https://instapaper.com/read/1368934176/14835244)) - Performance Verdict There was a debate about JMeter versus Gatling performance. As of today, none is performing better than the other. > Sure, the asynchronous thread model adopted by Gatling reduces CPU and memory usage a little bit, but usually the bottleneck comes from [[Network bandwidth]]. Simulating 1K concurrent users on a single machine with 1GBps is equivalent to giving roughtly 1MBps per user. This is clearly much lower than DSL or 4G Bandwidth. > > We decided to give the point to Gatling Tool. The innovative approach to the threading model, although bringing only minor benefits, merits attention. ([View Highlight](https://instapaper.com/read/1368934176/14835251)) ^8af625 - JMeter Distributed Testing When load testing an HTTP application, once you need to simulate several thousands users a single machine may not enough. The load must be splitted among multiple machines. JMeter and Gatling tool are clearly not behaving the same way on this field. JMeter is distributed. JMeter uses a master / slave architecture. The master is connected to slaves via the RMI protocol. The master sends the JMX to simulate to each slave. Each slave plays the JMX. If you have 6 slaves, and your JMX simulates 1000 users, then you end up playing 6x1000 = 6000 users. Results are sent back to the master for consolidation. If you want more info, see the Distributed Testing with JMeter tutorial. ([View Highlight](https://instapaper.com/read/1368934176/14835265)) - Gatling Tool simply doesn’t support distributed testing in the free version. Only Gatling Frontline, the paid Saas version, supports it ([View Highlight](https://instapaper.com/read/1368934176/14835275)) - The best way is to use a BackendListener which exports results to Grafana or InfluxDB: ([View Highlight](https://instapaper.com/read/1368934176/14835281)) - JMeter Cloud There are multiple companies that provide Cloud Load Testing for JMeter including brands like [[CA BlazeMeter]], [[flood.io]] or RedLine 13. All of them are just providing a facility to scale tests into the Cloud and provide a basic results reporting. You upload your JMX scenario or Gatling simulation to those providers, and they run your scenario on Cloud machines. [[OctoPerf]] is world first JMeter Saas Company, providing JMeter Web UI Scripting. We also Scale from multiple locations and provide fully customizable test reports. ([View Highlight](https://instapaper.com/read/1368934176/14835308)) - Gatling Tool Cloud Some of the Cloud solutions exposed in the previous point also support Gatling Tool. Gatling Frontline is the defacto recommended standard for running Gatling tests in the cloud. ([View Highlight](https://instapaper.com/read/1368934176/14835310)) -