very basic gatling framework skeleton, ready for extension
Go to file
2024-10-25 23:19:34 +01:00
aws fix gitignore and dockerfile 2024-10-25 23:19:34 +01:00
docker fix gitignore and dockerfile 2024-10-25 23:19:34 +01:00
out base test framework 2024-10-25 23:12:59 +01:00
src/test base test framework 2024-10-25 23:12:59 +01:00
.gitignore fix gitignore and dockerfile 2024-10-25 23:19:34 +01:00
Dockerfile fix gitignore and dockerfile 2024-10-25 23:19:34 +01:00
local-run.ps1 base test framework 2024-10-25 23:12:59 +01:00
local-run.sh base test framework 2024-10-25 23:12:59 +01:00
pom.xml base test framework 2024-10-25 23:12:59 +01:00
README.md base test framework 2024-10-25 23:12:59 +01:00

Simple Gatling Load Test Framework

This repository is a proof-of-concept demonstration of the Gatling load testing tool, in a standard Java/Scala test framework.

Here is what you need to run one of the load simulations provided in this demo:

Requirements

  • Java 17 or better
  • Apache Maven 3.9 or better
  • Docker 27 or better (for the docker image runs)

The maven tool will install all other necessary dependencies from Maven Central, including:

  • Scala 3 Libraries
  • Gatling SDK
  • Scala and Gatling runner plugins

Running The Tests

There are two ways to run a test:

  • As a docker container
  • On the native environment of your local machine

Docker Runs

To run a test as a docker container, use the docker-run scripts. A version has been created for both Windows and Linux/Mac host environments.

The docker-run script takes arguments that allow you to control the load profile of the test. It also takes arguments that enable the use of different test users. Here is example usage:

Powershell

.\docker-run.ps1 -test "TestClassName" -user "testuser" -pswd "password1234" -count 10 -ramp_in_minutes 5 -duration_in_minutes 15

Bash

./docker-run.sh -test "TestClassName" -user "testuser" -pswd "password1234" -count 10 -ramp_in_minutes 5 -duration_in_minutes 15

Local Runs

To run a test from your workstation, use the local-run scripts. A version has been created for both Windows and Linux/Mac host environments.

The local-run script takes arguments that allow you to control the load profile of the test. It also takes arguments that enable the use of different test users. Here is example usage:

Powershell

.\local-run.ps1 -test "TestClassName" -user "testuser" -pswd "password1234" -count 10 -ramp_in_minutes 5 -duration_in_minutes 15

Bash

./local-run.sh -test "TestClassName" -user "testuser" -pswd "password1234" -count 10 -ramp_in_minutes 5 -duration_in_minutes 15

Arguments for both the docker and local scripts:

  • The -test argument requires you to supply the classname of the test you want to execute. These can be found in the com.organization.tests classpath in your source directory. The basic naming convention is Java-style. However, an arbitrary test id has been attached to the beginning of the test name, to make it easier to locate in the test plan document.
  • -user and -pswd should just be whatever test user credentials will be used for the test session user population.
  • -count is the total number of test users to be instantiated during the test. It should be noted that the total number of users may not be the peak number of users. That will depend upon the next two arguments.
  • -ramp_in_minutes is the number of minutes over which your user population will inject itself into the scenario
  • -duration_in_minutes is the number of minutes the scenario should sustain the total population in the test