Once you've defined you scenario, it's important to spend time
determining your main objectives and goals.
Typical goals of performance testing, for both web and mobile
applications, can include:
- Checking for failures or errors that occur in an
application due to high load.
- High load may culminate in transaction failures or errors,
resulting in problems within an application (like a HTTP 500
error).
- Measure high response times and latency issues that arise due
to load.
- Determining the user limit for the
application.
- The user limit is the maximum number of simultaneous users that
the application can support while remaining stable and providing
reasonable response times to users as they navigate an
application.
- The user limit should always be
higher than the required number of concurrent users that the
application must support while deployed.
- Determining client-side degradation and end user
experience under load. Ask yourself:
- Can your users get to the application in a timely manner?
- Are your users able to use the application as intended within
an acceptable time?
- How does the time of day, number of concurrent users,
transactions and usage affect the performance of the
application?
- Is the degradation "graceful?" Under heavy loading conditions,
does the application behave as expected or do components crash
and/or send erroneous/incomplete pages to the client?
- What is the failure rate that your users observe? Is it within
acceptable limits? Under heavy loading conditions do most users
continue to complete their business transactions or do a large
number of users receive error messages?
- Determining server-side robustness and degradation. Ask
yourself:
- Does the web server crash under a heavy load? High user load
may initiate a large number of processes in the server and create
high CPU & RAM consumption. Would an increase beyond a specific
point bring down the server?
- Does the application server crash under a heavy load?
- Do any of the other middle-tier servers crash or slow down
under a heavy load?
- Does the database server crash under a heavy load?
- Does the system load require balancing or, if a load balancing
system is in place, is it functioning as intended? In a scenario
where multiple servers are in use, is the load distributed across
them efficiently so that parallel processing occurs correctly? Or,
are particular servers in the balancing cluster subjected to a
heavy load?
- Can the current architecture be fine-tuned to extract better
performance?
- Should you make hardware changes for improved performance?
- Are there any specific changes in the application or its
architecture that could further improve performance?
- Are there any resource deadlocks in the application
system?
Click here to go to the next page.