Front end
The front end consists of a load testing API and web console you use to interact with the solution’s backend.
Load testing API
Distributed Load Testing on AWS configures Amazon API Gateway to host the solution’s RESTful API. Users can interact with testing data securely through the included web console and RESTful API. The API acts as a "front door" for access to testing data stored in Amazon DynamoDB. You can also use the APIs to access any extended functionality you build into the solution.
This solution takes advantage of the user authentication features of Amazon Cognito user pools. After successfully authenticating a user, Amazon Cognito issues a JSON web token that is used to allow the console to submit requests to the solution’s APIs (Amazon API Gateway endpoints). HTTPS requests are sent by the console to the APIs with the authorization header that includes the token.
Based on the request, API Gateway invokes the appropriate AWS Lambda function to perform the necessary tasks on the data stored in the DynamoDB tables, store test scenarios as JSON objects in Amazon S3, retrieve Amazon CloudWatch metrics images, and submit test scenarios to the AWS Step Functions state machine.
For more information on the solution’s API, refer to the Distributed load testing API section of this guide.
Web console
This solution includes a web console that you can use to configure and run tests, monitor running tests, and view detailed test results. The console is a ReactJS application hosted in Amazon S3 and accessed through Amazon CloudFront. The application leverages AWS Amplify to integrate with Amazon Cognito to authenticate users. The web console also contains an option to view live data for a running test, in which it subscribes to the corresponding topic in AWS IoT Core.
The web console is designed to demonstrate how you can interact with this load testing solution. In a production environment, we recommend customizing the web console to meet your specific needs or building your own console.
The web console URL is the CloudFront distribution domain name which can be found in the CloudFormation outputs as Console. After you launch the CloudFormation template, you will also receive an email that contains the web console URL and the one-time password to log into it.