In the previous lesson, we introduced Gatling. In this lesson, we will learn about the features of Gatling.

Features of Gatling

The below diagram shows the important features of Gatling:

widget

Expressive Scala DSL

Gatling is written completely in Scala. Gatling test scripts are also written in Scala. Gatling provides excellent self-explanatory DSL (Domain Specific Language) for developing the test scripts.

UI recorder

Gatling provides a standalone recorder that converts HTTP web actions to Gatling test scripts.

Rich utilities

Gatling provides rich utilities and natively supports passing the test data to the load test scenarios from CSV (comma-separated value), TSV (tab-separated value), SSV (space-separated value), JSON file, JSON content from URL, JDBC (Java Database Connectivity), and Redis.

Akka Actors

Gatling uses Akka Actors internally to make non-blocking requests that provide maximum efficiency.

Web Sockets & JMS support

Gatling provides support for JMS (Java Message Service), SSE (Server-Side Events), Web Sockets, and MQTT (MQ Telemetry Transport). MQTT support is only available in Gatling Frontline (the commercial version of Gatling). The other tools are all available in open-source as well.

Assertions

Gatling provides assertions and checks that can be performed on the received response. It also provides ways to extract data from response and transform that data, which can then be passed on to the subsequent calls in the chain.

Rich HTML report

Gatling provides a feature-rich HTML report, which contains information about the executed scenario, configuration with which they were executed, and statistics about the received response.

Integration with Grafana & StatsD

Gatling also provides ways to persist the execution report by exporting the results to Graphana, Influx Time Series Database, StatsD, etc.

Jenkins CI/CD integration

Gatling allows us to override the run configuration parameters at runtime, including the reporting configurations. This allows us to easily integrate with CI/CD pipelines.

Distributed load testing

Gatling allows us to run test scripts against multiple servers that are behind load balancers by distributing the load and making configuration changes.