What does this AWS Solution do?
The Distributed Load Testing on AWS solution automates software applications testing at scale and at load to help you identify potential performance issues before their release. It creates and simulates thousands of connected users generating transactional records at a constant pace without the need to provision servers. The solution also allows you to run tests across multiple AWS Regions.
AWS Solution overview
The diagram below presents the architecture you can automatically deploy using the solution's implementation guide and accompanying AWS CloudFormation template.
Distributed Load Testing on AWS architecture
The AWS CloudFormation template deploys the following resources:
2. The microservices provide the business logic to manage test data and run the tests.
3. These microservices interact with Amazon Simple Storage Service (Amazon S3), Amazon DynamoDB, and AWS Step Functions to run test scenarios and provide storage for the test scenario details and run test scenarios.
5. The containers include a Taurus load testing Open Container Initiative (OCI) compliant container image which is used to generate load for testing your application’s performance. Taurus is an open-source test automation framework. The container image is hosted by AWS in an Amazon Elastic Container Registry (Amazon ECR) public repository.
6. A web console powered by AWS Amplify is deployed into an Amazon S3 bucket configured for static web hosting.
7. Amazon CloudFront provides secure, public access to the solution’s website bucket contents.
8. During initial configuration, the solution also creates a default solution administrator role and sends an access invite to a customer-specified user email address.
9. An Amazon Cognito user pool manages user access to the console and the Amazon API Gateway API.
10. After you deploy this solution, you can use the web console to create a test scenario that defines of a series of tasks.
11. The microservices use this test scenario to run Amazon ECS on AWS Fargate tasks in the AWS Regions specified.
12. In addition to storing the results in Amazon S3 and DynamoDB, once the test is complete the output is logged in Amazon CloudWatch.
13. If you select the live data option, the solution sends the Amazon CloudWatch logs for the AWS Fargate tasks to a Lambda function during the test, for each Region in which the test was run.
14. The Lambda function then publishes the data to the corresponding topic in AWS IoT Core in the Region where the main stack was deployed. The web console subscribes to the topic, and you can see the data while the test runs in the web console.
Distributed Load Testing on AWS
Last updated: 11/2022
Estimated deployment time: 15 min
Note: To subscribe to RSS updates, you must have an RSS plug-in enabled for the browser you are using.
Whether you’re a private enterprise or a public sector service, you need confidence that your application can scale with increased user loads. Distributed Load Testing on AWS allows you to automate application testing, understand how it will perform at scale, and fix bottlenecks before releasing your application.
Browse our library of AWS Solutions to get answers to common architectural problems.
Find AWS Partners to help you get started.
Find prescriptive architectural diagrams, sample code, and technical content for common use cases.