This is the improved setup, for the code for the old setup described in my original blog post see the v1 branch.
Blog describing the new setup is underway.
- S3 bucket for Gatling logs
- aws-cli
- Docker
- Maven >= 3.5
- Java >= 8
- Node >= 10.3.0
Contains AWS CDK project for creating needed infra for running loadtest on AWS.
See README.md in project.
Dockerfiles for realtime Gatling Monitoring
See README.md in project.
Mavenized Gatling project containing loadtest code.
Contains Dockerfile to build image to run on AWS.
See README.md in project.
AWS SDK project for running the loadtest on AWS.
See README.md in project.
Build the gatling-runner
project, so it creates the required jars needed for the Docker image.
Build the gatling-infra
project before calling cdk deploy
. The cdk tooling will not compile the code.
Now deploy the infra from the gatling-infra
project:
VPC_ID=<id> REPORT_BUCKET=<bucket> cdk deploy GatlingMonitoringEcsStack --profile <profile>
VPC_ID=<id> REPORT_BUCKET=<bucket> cdk deploy GatlingRunnerEcsStack --profile <profile>
Now run the loadtest on AWS using the gatling-runner-aws
project:
AWS_PROFILE=<profile> VPC_ID=<id> REPORT_BUCKET=<bucket> CLUSTER=gatling-cluster TASK_DEFINITION=gatling-runner SIMULATION=nl.codecontrol.gatling.simulations.BasicSimulation CONTAINERS=10 USERS=10 mvn clean compile exec:exec
When making changes to the Gatling code in the gatling-runner
project, don't forget to:
- build your
gatling-runner
project using Maven - and re-deploy your
GatlingRunnerEcsStack
fromgatling-infra
so AWS CDK will update your Docker image containing the Gatling code