This repo will help you to spin up an AWS EC2 instances with Java, JMeter, and JMeter Plugins for distributed load testing.
- Terraform
- AWS Console w/ IAM role
- Log into AWS console
- Navigate to EC2 -> Key Pairs
- Create a new key pair w/ RSA and Private Key format (PEM)
- Save the private key to a file in a secure location
module "jmeter-distributed-load-test-infra" {
source = "QAInsights/jmeter-distributed-load-test-infra/aws"
# insert the required variables here
aws_ami = "ami-001089eb624938d9f"
aws_key_name = "terraform"
jmeter_version = "5.4.3"
jmeter_workers_count = 2
aws_controller_instance_type = "t2.small"
aws_worker_instance_type = "t2.small"
jmeter_plugins = ["jpgc-casutg"]
}
By default, it will spin up an t2.small
[not a free tier] instance with us-east-2
availability zone. Refer to the AWS documentation for more information.
To configure other input variables, refer to the documentation.
To configure outputs, refer to the documentation.
- Run
terraform init
- Run
terraform plan
- Run
terraform apply
when prompted to continue, enteryes
to spin up the instance
- Collect all the IP addresses of the JMeter controller and workers. Create
outputs.tf
to store the IP addresses. - SSH into the JMeter controller and run the following command to start JMeter:
jmeter -n -t apache-jmeter-5.4.3/bin/examples/CSVSample.jmx -R <worker-IP-address-1,worker-IP-address-2...> \
-l run1.log -Dserver.rmi.ssl.disable=true
ssh into the instance using the PEM and run jmeter -v
to verify JMeter is installed and working.