distributed-load-testing-using-aws-fargate icon indicating copy to clipboard operation
distributed-load-testing-using-aws-fargate copied to clipboard

Clarification question

Open sean4200 opened this issue 6 years ago • 3 comments

Hi I am new to load testing and AWS, but believe this solution could be beneficial for future projects.

But require some clarification, would this running my full load in all az or is it splitting my load across all the az for example: if I had basic test which contains 250 rps would this solution make it 250 * each az or would it be 250/each az

sean4200 avatar Jun 25 '19 16:06 sean4200

Hi @sean4200 , thanks for your interest in the project! That's a fair question.

This solution creates a new VPC in your account which contains 3 Availability Zones and yes, when you launch a Load Test it will distribute the docker containers within the 3 AZs as evenly as possible. You can check this logic in the script that triggers the execution: https://github.com/aws-samples/distributed-load-testing-using-aws-fargate/blob/master/bin/runner.py. By default it triggers 3 docker containers (1 per AZ), but you can overwrite this value by overriding the TASK_COUNT environment variable within the Code Pipeline.

Now, each docker container will run an instance of your defined Taurus scenario. These scenarios are defined in YAML format, for example:

execution:
- concurrency: 5
  ramp-up: 1m
  hold-for: 5m
  scenario: aws-website-test

scenarios:
  aws-website-test:
    requests:
    - https://aws.amazon.com

Where concurrency is the amount of TPS that the container will execute. So, for example if you specify a concurrency of 5 and you leave the default of 3 docker containers per load test execution. Then you will have a total of 15 TPS.

ferdingler avatar Jun 25 '19 21:06 ferdingler

Thank you, ok so if I had a JMeter test within my taurus file which was configured to generate 250 request per second to a endpoint, this would actually run 3 times, e.g. 250 RPS in az1, 250 in az2 and 250 in az3, totalling 750 RPS to the endpoint.

Another question, if the parameters for concurrency, hold and ramp are removed from the Taurus file would the ones set in the jmeter test then be used?

sean4200 avatar Jun 25 '19 22:06 sean4200

@sean4200

  1. Correct.
  2. I believe so. If you look at the Taurus docs, you can chose the JMeter Executor: https://gettaurus.org/docs/JMeter , in which you don't specify parameters like concurrency because it takes the ones on your jmx file. I haven't personally tried this. But if you do, please let us know here if it worked. :)

ferdingler avatar Jun 28 '19 15:06 ferdingler