Your Step by Step Guide to Performance Testing

Your Step by Step Guide to Performance Testing
COMMENTS ()
Tweet

Performance testing is a very broad, complex and time taking activity, but in return, this activity addresses many risks associated to the business and provide great value, if executed properly.

To start with performance testing it is very important to get familiar with the following key concepts involved with Performance testing. These include:

Concurrent Users Load: Concurrent users are active users who perform different activities on your application at a given time, but not at once.

Let’s take an example of simple web application which allows users to Login, browse for contacts, send messages, view reports and Logout.

So, let’s say you have 10 users logged in to your application, but out of these 10 are browsing for contacts, 2 are messaging, and 3 are viewing reports, but in total this simulates concurrent load of 10 users on your site.

Simultaneous User Load: Simultaneous users are users who perform same operation at the same time and cause application to execute same piece of code on server at the exact same time.

In the above stated example, 5 users browsing for contacts is an example of simultaneous load on site.

Response Time: It is the time that any request takes to complete from start to end. Response time is a key parameter and plays a major role in keeping users engaged. As per response-time limits established by Miller and Nielsen, there are three response-time limits:

  • 0.1 seconds is the limit for the user to feel that the system in reacting instantaneously to their direct manipulation – the only necessary feedback is the display of results.
  • 1.0 second is the limit for the user’s thoughts to remain uninterrupted, although they will notice the delay.
  • 10 seconds is the limit for keeping the user’s attention – in other words, the general point of abandonment.

Source: http://ixd.prattsi.org/2015/04/response-time-is-speed-the-ultimate-usability-metric/

Throughput: Throughput is a very important metric in measuring system performance. It indicates the application capability to process number of requests per second or per minute.

Throughput of an application is mainly dependent on the following factors:

  • Hardware specifications of test environment.
  • Communication channel bandwidth between Application/Database/Client machines.
  • Degree of parallelism for both hardware and software supports.
  • Databases system in use (If using SQL server then whether it’s Enterprise/Standard/Express/Dev version).
  • Types of transactions being performed.

Load Testing: Load testing is all about measuring your applications response time and or behavior at expected peak loads for a defined period of time.

Stress Testing: When we extend the expected load on server for an extended amount of time to observe system behavior/performance, is known as ‘Stress Testing’. Stress testing is very helpful in identifying the break point and take necessary measures to overcome that situation.

Performance Testing Process

Performance testing, if not planned correctly not only lead to misleading results, but can also cost additional resources and time. In order to get the accurate results it is very important to understand and design test process and get it approved by all stake holders. Following is a basic performance test process workflow that can be applied to any application.

  • Planning: While planning your performance tests set clear objectives and acceptance criteria for your tests and also decide the tool(s) that you will be using for performance testing.
  • Environment Setup: Setup your test environment in line with your production environment, including data bases and communication channel bandwidth as well. Most of the time it is not possible to create exact replica of production environment so in that case don’t forget to modify your performance test as your current test environment.
  • Execution: During the execution of your performance test closely monitor your test results and don’t rely on any single reading, try to average out your performance test readings. A good approach here is to isolate your performance test from bandwidth or network latency issues to connect your server and clients over private IPs. In performance testing, the execution phase will require Execution, Analysis and Optimization and it will be cyclical activity.
  • Reporting: Once you are done with the execution and optimization cycle, finalize your results and compile a report in a presentable format which clearly highlights your application throughput, response time, concurrent users load support etc.

Note: Don’t forget to take notes of each execution cycle for future comparison and final reporting.

Load and Performance Testing Tools

Following are some of the open source performance testing tools widely used in the software industry and are very helpful in performance tuning of your application. These are:

  • Apache JMeter
  • Apache ab
  • Gatling
  • LoadUI
CALL

USA408 365 4638

VISIT

1301 Shoreway Road, Suite 160,

Belmont, CA 94002

Contact us

Whether you are a large enterprise looking to augment your teams with experts resources or an SME looking to scale your business or a startup looking to build something.
We are your digital growth partner.

Tel: +1 408 365 4638
Support: +1 (408) 512 1812