out | ||
src/test | ||
.gitignore | ||
aws-run.ps1 | ||
buildspec.yml | ||
docker-entrypoint-script.sh | ||
docker-run.ps1 | ||
docker-run.sh | ||
Dockerfile | ||
local-run.ps1 | ||
local-run.sh | ||
pom.xml | ||
README.md |
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 thecom.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