Performance Testing – The non-functional testing technique

Performance-Tests
31 Jul 2020
Ever wondered, about your application’s responsiveness and stability under various workload?
Why should you test the performance of your system?

Well, to ensure that it meets the expected service levels in production, as well as deliver a positive user experience. Application performance is a key determinant of adoption, success, and productivity.
Before we begin, lets understand what performance testing is
Performance testing is a method performed to determine the responsiveness and attitude of a system when a particular workload is applied on it. It can also give us the information about how the system performs in variable workloads in terms of average throughput, average response time, user hits per second etc….

BlazeMeter – The continuous testing platform

Performance testing can be done using jmeter and also by BlazeMeter. A BlazeMeter report based on a jmeter script somehow gives us the detailed report of how the system worked in the applied load under a fixed stress point.
These reports give us the exact count of errors for each action, the behaviour of errors, and the response code returned for each of these errors.
BlazeMeter also provides various graphs related to the parameters like load time graph, engine health graph, response time graph, request status graphs etc. which will give us a quick understanding of how the system performs in response to each request of our web/mobile application.

Load Graph

The user load graph illustrates the response of the system at different stages of the user hits,that is,the percentage of error occurred during each second when the entire user load hits the system simultaneously.

load-graph

The load graph above clearly depicts the performance of the system for an applied user load. All the indicators of the graph is marked as  horizontal curves.

  • The horizontal blue straight line shows the maximum number of concurrent user load applied in overall for the application.
  • The green curve in the graph shows the number of user hits per second.
  • The Red curve at the bottom shows the percentage of error encountered for each user hits.
load-graph-2

Clicking on any point will display the maximum users, user hits/second and error rate at the point.
For an ideal system, the error rate stays at 0% which turns the graph to vanish out the red error curve in the system even when the user hits per second increases upto the maximum users.

Response Time Graph

A Response time graph indicates the rate of responses against the user hits. The response time graph shows how the applied user load affects the responses.

response-time

The graph shows only one curve which indicates the response time for each second.

  • The yellow curve indicates the response time.
  • Blue straight line is the maximum number of users.

In the above graph, when it reaches the maximum applied users, the response time also increases to the maximum which indicates the low performance of the application.
For a good performing system, the response time is uniform for every second and does not vary.
The response time curve will be straight and response time will be low for an ideal application.

response-time

On clicking at any point on the curve, the response time for the maximum users at that particular second is displayed.

Timeline Graph

A timeline graph depicts various parameters in a single graph. The parameters depicted in the graph are as follows:

  • Users
  • Hits per second
  • Response time
  • Latency
  • Bytes per second
  • Connect time
timeline-graph

The key performance indicators shows the status of various parameters when the application worked on the applied load.

There are 4 different curves which indicates each of the key performance indicators:

  • The red curve indicates the error rate of all the users.
  • Green curve is the total number of hits of all the users in a particular time.
  • Yellow curve shows the average response time for the user hits.
  • Blue straight line indicates the total applied users.

On the left side of the timeline graph, shows the API’s with error count for each, response time, latency time, bytes per second and the response code received for each of the requests.

timeline-graph

Clicking on each of the options, it will highlight the respective request curve with all of its key performance indicators.

Engine Health Graph

An engine health graph shows the capacity of the user engine used for testing.
It also helps us understand whether the testing infrastructure is the reason for obtaining bottlenecks or errors.
Performance testing gathers all the tests that verify an application’s speed, robustness, reliability, and correct sizing. It examines several indicators such as a browser, page and network response times, server query processing time, number of acceptable concurrent users architected, CPU memory consumption, and number/type of errors which may be encountered when using an application.

Engine Health Graph