Runs a Jmeter load test in the cloud. Achieves 3 objectives:
- Creates an AWS instance.
- Runs jmeter in that instance
- Downloads the result log files to your machine
Caveats:
- Make sure you have a Jmeter (.jmx) test plan
- Make sure you have a valid key pair .pem file
- Make sure you have aws-okta configured
- Make sure you run this in aws-okta nordstrom federated bash
- If you're using CSV Data Config, make sure your csv is in the same directory as .jmx file and specify relative path in .jmx file.
- Packge Usage and more info. - read about how to use the package and how to avoid common pitfalls
- Python 3.6+: Most Macs and Linux distributions come with Python 2.7 installed. To install and use python 3.6+ see this: Installing Python3. Or you can use Homebrew.
- Boto3:
pip install Boto3
Further documentation : Install Boto3 - Paramiko:
pip install paramiko
Paramiko homepage: Install Paramiko - Pip: If you installed Python3.6+ already you should have associated pip installed. If not then see this: Installing Pip
Simply clone the source project and unzip it.
- Install the prerequisities
- Go to the project Source Directory
- Open a terminal
- Navigate to the folder where you saved this project
- Make sure you're in federated aws-cli (Look at the Common Gotchas wiki link above.)
- Run Setup.py (fail safe in case you don't have all prereqs)
- There are two ways to run this:
- Go up one level (from project directory) and
python jmeter_cloud
(Assuming project is saved as jmeter_cloud directory and Python3 is installed with python command) - Or
python __main__.py
- Go up one level (from project directory) and
- Add testplan path, key pair path and other arguments as shown in the package usage in the wiki.
- Mirrors the ec2 instance terminal in real-time after each command is passed.
- Runs the load test using user provided jmeter (.jmx) config, key pair (.pem) and other neccessary files.
- Shows the non-GUI Jmeter terminal info.
- Dowloads load test result files (.jtl) and jmeter logs (.log) with the prefix:
<testplan file name>_<current time in format: %Y-%m-%d %H:%M:%S>_
- Example Result log (.jtl) file name: "myTestPlan_2020-02-12 13/30/56_log.jtl"
- Example Jmeter Log (.log) file name: "myTestPlan_2020-02-12 13/30/56_jmeter.log"
- Work on a distribution package
- Add support for GCP and Azure
- Work on Dasboard (grafana etc.) for displaying .jtl log results
- Work on Factory Pattern
- Add SSM support
- Kirtiman Sinha - 2/05 - 2/08 (2020)