More often than not, i am pushed to the wall with this question on performance testing - “Our Website should support 2 million users in 1 hour time frame. The site admins want to test the site’s performance to ensure that it can sustain million users in one hour”
What should i do to ensure this? How do i go about doing this?
Very simple, You will need to break down this problem statement into Performance Objectives, Performance Budget constraints and Performance testing Objectives. Follow up with few questions and the answers will unfold
Performance objectives
- The web site should support a peak load of 2 million users in one hour time frame
- No transaction should be compromised due to application errors
Performance Budget/Constraints : – These constrain the performance testing effort
- No server can have sustained processor utilization above 75 % under any anticipated load ( normal & Peak)
- Response times for all submissions should be less than 8 seconds during normal and peak load
- Again, no transaction loss due to application error.
Performance Testing Objectives : – These are the priority objectives that must be focussed in performance testing
- Simulate one user transaction scripted with 2 million total virtual users in 1 hour distributed among 2 datacenters ( i am considering a WAN here)
- Simulate peak load of 2 million users visits in 1 hr period
- Test for 100 % coverage on all transactions ( loads)
- Monitor for relevant component metrics – end user response times, error rate, database transactions per second and overall processor, memory, network and disk status for the DB server
- Test the error rate to determine the reliability metrics
- Test by using firewall and load balancing configurations
Some Questions that helped to determine relevant testing objectives
- What is the reason for deciding to test performance?
- In terms fo performance, what issues concern you most in relation to transactions that might cause data loss or user abandonment due to slow response times?
- What types of transaction(loads) are needed to be simulated relating to the business needs
- Where are the users located geographically while requesting for a transaction