Architecture

Stephane Landelle edited this page Mar 15, 2012 · 1 revision

How Gatling Works

Process Overview

Gatling's process is divided in three parts:

  1. Simulation Compilation
  2. Run Simulation
  3. Generate Reports

Next picture illustrates the global process and the tasks done during each part (Open in new windows if you cannot read):

Gatling Process Overview

Projects and Modules

The complete Gatling suite is made of 3 Maven projects and 9 Maven modules as illustrated below.

Gatling Maven Structure

There are three projects because of licensing issues as explained here:

  • Gatling is under Apache License
  • Gatling VTD is under the GPL
  • Gatling Highcharts is not Open Source

Therefore, you can only contribute code to Gatling and Gatling VTD. Concerning Gatling Highcharts, you can still file issues if you find any bug.

Application Programming Interfaces (APIs)

Gatling APIs allows developers to add components or even plugins to Gatling easily; they are shown below.

Gatling APIs

As you can see, there are no more than 7 APIs, some are more important than others of course. The 4 most notable APIs of Gatling are the Charting API, the Request API, the Feeder API and the Check API as they allow you to create plugins for Gatling. The 3 others offer functionalities that you can use in your plugins.

Charting API

This is the API against which Gatling Highcharts is built; it allows one to build the chart reports with any charting library.

More information on the Charting API Page.

Checks API

This is the API against which Gatling VTD is built; it allows one to add check methods in Gatling.

More information on the Checks API Page.

Feeder API

This API allows one to add sources and strategies for the Feeders. The only existing examples are in gatling-core for the moment.

More information on the Feeder API Page.

Request API

This API allows one to add support for other protocols in Gatling. It is used in gatling-http to add support for HTTP requests.

More information on the Request API Page.

Other APIs

The other APIs are small helpers to help you use some facilities of Gatling without having to code them. You are strongly advised to use as much Gatling's APIs when developing plugins. It will give some consistency to the Gatling Suite ecosystem.

Since version 1.0, there are three utility APIs:

  • The Config API, used to manage the configuration of your plugin;
  • The Logging API, used to manage the logs of your plugin;
  • The Resources API, used to manage part of the life cycle of the closeable resources of your plugin.

More information on the Other APIs Page.