Making a load-testing framework for GameChanger that is: configurable, maintainable, scalable. Something where load-tests can be ran and the results can be viewed and understood to help provide insights into the system; specifically how it will behave under load.
What it does
Utilizes gatling to run configuration-based load-tests on-demand.
How we built it
We built a CloudFormation template file that outlined the different resources the system needs. This is accessed via a CodePipeline script that builds & provisions the resources defined in the CloudFormation template. After this is complete, it kicks of an Ansible script which downloads the gatling binary code, and installs it on the provisioned ec2 instance. Once complete, the ansible script then kicks of the gatling test framework with given configurations. The result output is then uploaded into s3.
Challenges we ran into
- Creating a configurable CloudFormation template that can be ran by CodePipeline to provision the necessary resources and run the ansible script.
- Having the CodeBuild script run the ansible playbook to run gatling
Accomplishments that we're proud of
- Providing an on-demand & on-change runnable load-testing framework that allows users to define how they want to run their unit tests and provision all the resources they need.
What we learned
- A lot about CloudFormation, CodeBuild, and CodePipeline