Getting started - Performance Testing basics

The aim of this blog is to get you started with performance testing of web applications and services, teaching you everything you need to know about performance testing and JMeter along the way. So, lets get started.

What is Performance Testing and why it is required?

Majority of web application today are focused on masses i.e. they provide simultaneous access to large number of users to perform different operations. In such cases it is required to measure the performance of the application, to see how well the application behaves in high concurrent load situation. 

Most of the mailing, online gaming and social networking websites today have more or less similar functionality but one get ahead of other on the basis of its performance only. So, performance is a vital aspect of an application and to foresee how well the application will behave in large concurrent load is the responsibility of Performance Tester. 

According to wiki "Performance testing in general is performed to determine how a system performs in terms of responsiveness and stability under a particular workload. It can also serve to investigate, measure, validate or verify other quality attributes of the system, such as scalability, reliability and resource usage."

Performance testing and Load Testing - Are they same?

Load testing is actually a type of performance testing that focuses on analyzing the behavior of web application under a particular load test for a predefined amount time. Whereas performance testing not only includes determining application's performance metrics under a particular load but also determining application's upper limit of capacity(break point); ability of system to sustain normal workload for a large duration of time and studying effect of configuration changes on application's performance.
Wiki defines five forms of performance testing-

  1. Load testing - As discussed above
  2. Stress testing - For determining applications break point
  3. Endurance testing (soak testing) - To determine if the system can sustain the continuous expected load(running load test for a long duration like 24 hours, 2 days to check for issues like memory leakage)
  4. Spike testing - Understanding effect of suddenly increasing the number of users
  5. Configuration testing - Understanding configuration changes on application (N/w and H/w changes)
  6. Isolation testing - For fault isolation(running a particular test scenario that is causing problem)
This was all, in brief, about what performance testing mean and why it is required. Next posts will cover the topic - how actually performance testing of an application is planned and done and end to end of performance testing tool - JMeter.