Task 01 - Implement load testing
Below is a sample load testing plan. Learners should have a plan with a similar overall feel, although some specific details may vary.
- Define what services and the scope of your testing
- We will be simulating an average day when a user hits our website during normal business hours 8 AM - 5 PM. We will be testing all endpoints to ensure all features are tested.
- Environment Requirements
- Because we are testing user workloads, we will need the following resources at the same level as production.
- App Service
- Because we are testing user workloads, we will need the following resources at the same level as production.
- Identify the load characteristics and scenario
- Our current average daily load is 1000 users/hour. We will mimic the average daily load by spinning up 30 concurrent threads, hitting all endpoints. Because there is a consistent daily load, we will mimic this with gradual load increasing linearly.
- Identify the test failure criteria
- Our test will fail if we are unable to support 30 concurrent users, as we already know this is the current demand.
- We will also consider this a failed test if we find performance below the expected threshold of 600ms per call on average or if more than 10% of calls fail, as this may impact customer satisfaction.
- Identify how you will be monitoring your application
- We will be monitoring our applications with Application Insights to detect any errors and monitor performance.
- Identify potential bottlenecks or limitations in advance
- Although we do not cache data, the fact that the application is using an in-memory database should mitigate any data transfer bottlenecks.
- Identify any assumptions or risks in your plan
- We are assuming these are only casual end users and not other 3rd parties who could be trying to obtain information about our traffic.
- We are using consumption-based model for Azure App Services.
- The application does not make any database calls.
Reinforce the importance of using existing metrics, usage patterns, and data to inform the load testing plan on learners’ own applications.