Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Overview  





2 Terminology  





3 Architecture  





4 Components  



4.1  Recorder  





4.2  Domain-specific language  





4.3  HTML reports  







5 Protocols support and plugins  





6 Plugins  





7 Continuous integration  





8 Major and minor releases  





9 Licensing  





10 Gatling Enterprise  





11 Company  





12 Origins of the open-source project  





13 Creation of a dedicated company  





14 See also  





15 References  














Gatling (software)






Français
 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


Gatling
Gatling reports screenshot
Type of businessPrivate

Type of site

Open-source load and performance testing for web applications
Available inEnglish
FoundedJuly 1, 2015; 9 years ago (2015-07-01)
HeadquartersBagneux, France
Area servedWorldwide
Founder(s)Stéphane Landelle (CTO)
IndustrySoftware
ProductsGatling, Gatling Enterprise (Frontline)
URLgatling.io
Launched13 January 2012; 12 years ago (2012-01-13)
Current statusActive
Written inScala, Java, JavaScript

Gatling is a load- and performance-testing framework based on Scala, Akka and Netty. The first stable release was published on January 13, 2012. In 2015, Gatling's founder, Stéphane Landelle, created a company (named "Gatling Corp"), dedicated to the development of the open-source project. According to Gatling Corp's official website, Gatling was downloaded more than 20,000,000 times (2024). In June 2016, Gatling officially presented Gatling FrontLine (now Gatling Enterprise), Gatling's Enterprise Version with additional features.[1]

The software is designed to be used as a load testing tool for analyzing and measuring the performance of a variety of services, with a focus on web applications, APIs, and microservices.

Gatling was mentioned twice in ThoughtWorks Technology Radar, in 2013 and 2014,[2] "as a tool worth trying",[2] with an emphasis on "the interesting premise of treating your performance tests as production code".[2]

The latest minor release is Gatling 3.11, published on April 23, 2024.[3]

Overview

[edit]

Gatling Corp develops the open-source performance testing tool for web applications, Gatling, and its enterprise version, Gatling Enterprise. The Project's aims include:

Terminology

[edit]
//Java

public class ComputerDatabaseSimulation extends Simulation {

  HttpProtocolBuilder httpProtocol =
    http.baseUrl("https://computer-database.gatling.io")
      .acceptHeader("application/json")
      .contentTypeHeader("application/json");

  ScenarioBuilder myFirstScenario = scenario("My First Scenario")
    .exec(http("Request 1")
      .get("/computers/"));

  {
    setUp(
      myFirstScenario.injectOpen(constantUsersPerSec(2).during(60))
    ).protocols(httpProtocol);
  }
}
//JavaScript 

export default simulation((setUp) => {

  const httpProtocol =
    http.baseUrl("https://computer-database.gatling.io")
      .acceptHeader("application/json")
      .contentTypeHeader("application/json");

  const myScenario = scenario("My Scenario")
    .exec(http("Request 1")
      .get("/computers/"));

  setUp(
    myScenario.injectOpen(constantUsersPerSec(2).during(60))
  ).protocols(httpProtocol);
});
//Java

ScenarioBuilder myFirstScenario = scenario("My First Scenario")
    .exec(http("Request 1")
      .get("/computers/"));

  {
    setUp(
      myFirstScenario.injectOpen(constantUsersPerSec(2).during(60))
    ).protocols(httpProtocol);
  }
//JavaScript

const myScenario = scenario("My Scenario")
    .exec(http("Request 1")
      .get("/computers/"));

  setUp(
    myScenario.injectOpen(constantUsersPerSec(2).during(60))
  ).protocols(httpProtocol);
});
//Java

.exec(http("Request 1")
    .get("/computers/"));
//JavaScript
.exec(http("Request 1")
      .get("/computers/"));
//Java 

    setUp(
      myFirstScenario.injectOpen(constantUsersPerSec(2).during(60))
    ).protocols(httpProtocol);
//JavaScript
setUp(
    myScenario.injectOpen(constantUsersPerSec(2).during(60))
  ).protocols(httpProtocol);

Architecture

[edit]

Gatling implemented a fully new architecture for a performance testing tool, in order to be more resource efficient.[8] It makes it possible to simulate a high number of requests per second with a single machine.[9]

Components

[edit]

Recorder

[edit]

Gatling comes with a recorder to bootstrap a simulation.

Domain-specific language

[edit]

Gatling is provided with a simple[10] and lightweight[2] Domain-specific language, in which simulations and scenarios are coded. This allows users to add custom behavior through many hooks.[11] This makes simulation scripts readable and easy to maintain.[12]

In 2024 Gatling introduced a new DSL (SDK) for JavaScript and TypeScript.[13] The JavaScript and TypeScript SDK uses GraalVM to translate JavaScript code to Java and execute load tests on a JVM. The addition of JavaScript and TypeScript support makes Gatling the first polyglot load testing tool in the market.

This is an example of what Gatling's Domain-specific language looks like (see also § Terminology):

val scn = scenario("BasicSimulation")
  .exec(http("request_1")
  .get("/"))
  .pause(5)

HTML reports

[edit]

At the end of each test, Gatling generates an HTML report. Reports include:[14]

Protocols support and plugins

[edit]

It officially supports the following protocols:

Gatling documentation states that it is protocol agnostic, which makes it possible to implement other protocols' support.[15] Here is a non-exhaustive list of community protocols support:

Plugins

[edit]

Gatling comes out with official and community plugins. It integrates with:

Here is a non-exhaustive list of community plugins:

Continuous integration

[edit]

Automation with Gatling is related to its simulations' maintainability.[16] The integration with other developer tools, especially in the DevOps lifecycle, makes it possible to industrialize performance tests, that is to say to fully automate the execution of performance testing campaigns in the software development process.

Major and minor releases

[edit]
Version[17] Release date
3.11.1 25 April 2024
3.10.3 21 December 2023
3.9.5 10 May 2023
3.0.0 23 October 2018
2.3.0 30 August 2017
2.2.0 15 April 2016
2.1.0 15 December 2014
2.0.0 6 October 2014
1.5.0 6 May 2013
1.4.0 20 December 2012
1.3.0 19 September 2012
1.2.0 31 May 2012
1.1.0 26 March 2012
1.0.0 13 January 2012

Licensing

[edit]

Gatling is published under Apache License 2.0,[18]apermissive free software license written by the Apache Software Foundation (ASF).[19]

The source code is accessible on GitHub.

Gatling Enterprise

[edit]

Gatling Enterprise is the commercial version of Gatling. Gatling Enterprise is proprietary software. It is distributed by Gatling Corp.

Company

[edit]

Gatling started as an open-source project in 2012. 3 years later, in 2015, its founder, Stéphane Landelle, created a dedicated company named "Gatling Corp".

Origins of the open-source project

[edit]

Gatling was designed by Stéphane Landelle when he was the Chief Technology Officer (CTO) of a French IT consulting firm, eBusiness Information.

Creation of a dedicated company

[edit]

In 2015, a dedicated company was created. It provides Gatling's users with professional services and, since 2016, with an Enterprise Version of Gatling, Gatling FrontLine.

The company is based in Bagneux, France, near Paris.

Gatling Corp is a member of Systematic Paris-Region, an Île-de-France business cluster created in 2005,[20] devoted to complex systems and ICT.[21] Systematic Paris-Region gathers large groups, SMEs, universities and research labs to promote digital innovation. Gatling is a member of Systematic's Open Source Working Group and was elected member of Systematic's board of directors, as a representative of SMEs, in November 2016.

The company took part in some events, like the Paris Open Source Summit (POSS, 2015, 2016 and 2017 editions), Liferay's 2016 Symposium, Java User Group (JUG)'s meetings, the Paris Gatling User Group and the New York Gatling User Group.

See also

[edit]

References

[edit]
  1. ^ "Soirée de présentation Gatling FrontLine". Gatling Paris User Group (in French). Meetup. Retrieved September 1, 2017.
  • ^ a b c d Rodrigo Tolledo (12 May 2014). "Gatling: Take Your Performance Tests to the next Level". Blog. ThoughtWorks. Retrieved September 1, 2017.
  • ^ "What's new in 3.11". 2023-02-11.
  • ^ Lyudmil Latinov (9 June 2017). "Performance testing with Gatling". Automation Rhapsody. Retrieved September 1, 2017. "Simulation" is the actual test. It is a Scala class that extends Gatling's io.gatling.core.scenario.Simulation class. Simulation has a HTTP Protocol object instantiated and configured with proper values as URL, request header parameters, authentication, caching, etc. Simulation has one or more "Scenario".
  • ^ a b c d Gatling Corp. "Gatling Documentation, Create your first Java-based simulation". Gatling Corp. Retrieved January 12, 2018.
  • ^ a b c "Create your first JavaScript-based simulation". Gatling documentation. 2023-12-16. Retrieved 2024-07-23.
  • ^ Lyudmil Latinov (9 June 2017). "Performance testing with Gatling". Automation Rhapsody. Retrieved September 1, 2017. Scenario is a series of HTTP Requests with different action (POST/GET) and request parameters. Scenario is the actual user execution path. It is configured with load users count and ramp up pattern. This is done in the Simulation's "setUp" method. Several scenarios can form one simulation.
  • ^ Siva Prasad Rao Janapati (1 February 2017). "Gatling: A Lightweight Load Testing Tool". Performance Zone. DZone. Retrieved September 1, 2017. Gatling consumes fewer system resources to run a load test than other options.
  • ^ Lyudmil Latinov (9 June 2017). "Performance testing with Gatling". Automation Rhapsody. Retrieved September 1, 2017. It is capable of creating an immense amount of traffic from a single node.
  • ^ Sree Tejaswi (4 January 2017). "An Introduction to Load Testing With Gatling". DevOps Zone. DZone. Retrieved September 1, 2017. It is an easy-to-install tool where simulations and scenarios are coded in a simple domain-specific language (DSL).
  • ^ "Cheat-Sheet". 20 April 2021.
  • ^ Sree Tejaswi (4 January 2017). "An Introduction to Load Testing With Gatling". DevOps Zone. DZone. Retrieved September 1, 2017. You can thus generate readable and easy to maintain performance test code.
  • ^ "JavaScript SDK | Gatling Blog". gatling.io. Retrieved 2024-05-24.
  • ^ Sree Tejaswi (4 January 2017). "An Introduction to Load Testing With Gatling". DevOps Zone. DZone. Retrieved September 1, 2017.
  • ^ "Gatling". Documentation. Gatling Corp. Retrieved September 1, 2017. As the core engine is actually protocol agnostic, it is perfectly possible to implement support for other protocols.
  • ^ Federico Toledo (12 July 2016). "Gatling Tool Review for Performance Tests (Written in Scala)". Performance Zone. DZone. Retrieved September 1, 2017. The language, Scala, and Gatling's DSL are pretty focused on facilitating the maintainability of the tests, which is ideal if you are focusing on continuous integration
  • ^ "Milestones". Gatling's repository. GitHub. Retrieved September 1, 2017.
  • ^ "License". Gatling's repository. GitHub. Retrieved September 1, 2017.
  • ^ New Media Rights (2008-09-12). "Open Source Licensing Guide". California Western School of Law. Retrieved 2015-11-28. The 'BSD-like' licenses such as the BSD, MIT, and Apache licenses are extremely permissive, requiring little more than attributing the original portions of the licensed code to the original developers in your own code and/or documentation.
  • ^ (in French)Systematic Paris-Région Archived 2013-02-17 at archive.today
  • ^ (in French)Qui sommes-nous?

  • Retrieved from "https://en.wikipedia.org/w/index.php?title=Gatling_(software)&oldid=1236178264"

    Categories: 
    Load testing tools
    Java platform
    Free software programmed in Scala
    Hidden categories: 
    CS1 French-language sources (fr)
    Articles with French-language sources (fr)
    Webarchive template archiveis links
     



    This page was last edited on 23 July 2024, at 09:28 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki