Performance testing is a type of software testing performed to test the behavior of the software under real-world load and conditions. The outcomes of a performance test are generated in the form of some metrics.
A metric is nothing but a measuring unit in which the result of a test is calculated. The performance testing metrics helps in identifying the weaknesses and loopholes in the software creating a bottleneck in it. Calculating each metric is not at all an efficient and possible way. Project teams select only a few metrics.
The common points considered while selecting metrics are:
- The metrics should be important for the undergoing project.
- It should be very hard to calculate.
- The metrics whose data is available for its calculation.
Advantages of Performance Testing Metrics
Following are the advantages of performance testing metrics:
1. Performance testing metrics help in tracking the progress of a project.
2. They also discover the main cause of problems in the software.
3. They also help in comparing the results of different tests, along with the impact a change made on the application.
4. These metrics are very valuable in improving the quality of the software.
5. It exposes the areas in the software that are required to be addressed.
Some common performance testing parameters
Below are the performance testing parameters:
Processor Usage: The amount of time required by the processor to execute non-idle threads.
Memory Use: It is the amount of memory available in a computer for processing purposes.
Disk Time: It is the amount of time disk busy in the execution of reading or write requests.
Bandwidth: This metrics gives the bits per second utilized by the system interface.
Private Bytes: It is the number of bytes allocated to a process that cannot be shared with other processes. These metrics help in finding the memory leakage, and usage.
Committed Memory: It is the amount of virtual memory used in the process.
Memory Pages/Second: It is the measure of the number of pages written to or read from the disk to fix the hard page faults. Hard Page faults occur when instead of calling the code from the current working set, it is called from anywhere else and retrieved from the disk.
Page Faults/Second: It is the rate at which the processor can process the fault pages. These faults occur when the code has to be called from outside its working set.
CPU Interrupts/second: It is the average number of interrupts from the hardware a processor is dealing with each second.
Response Time: It is the interval of time from the entry of a request by the user till the first character of the response is received.
Throughput: It is the rate at which a system receives requests from the users per second.
Connection Pooling Amount: It is the number of requests made by the user’s met by the pooled connections. A system with a large connection pooling amount is considered a better performing system.
Maximum Active Sessions: It is the maximum number of sessions that can stay active at the same time.
Hot Ratios: The significance of this metric is in determining the number of SQL statements handled by the cached data instead of I/O operations which are more expensive.
Hits per Second: It is the number of hits on the webserver on each second of the load test.
Rollback Segment: It is the segment of data that can rollback at any point in time.
Database Locks: Its significance is that the locking of the database should be monitored and carefully tuned.
Waits: It helps in determining the waits time so that it can be removed from the time taken to retrieve data from the memory.
Thread Counts: It is the measure of the number of threads that are running and are active simultaneously. It helps in evaluating the health of an application.
Garbage collection: It helps in analyzing the ability of the system to return the unused memory. These metrics are calculated to evaluate the efficiency of the system.
Disk Queue Length: It is the number of requests made to a selected disk for reading or writing in a sample interval.
Network Output Queue Length: It is the number of output packet queues in packets. If this length is more than two then there will be some delay in the system and efforts should be made to remove this bottleneck.
Network Bytes Total per Second: It is the rate at which the interface sends and receives bytes including the framing characters.
Some common web performance metrics
When it comes to developing and testing the performance of a website, here are some web performance testing metrics to help you in doing it.
Page weight does not depend upon the server and infrastructure of the machine application is running on and is easy to calculate as the development process continues.
Time to first byte
It is the amount of time a browser takes to retrieve the first byte of information from the server when it makes a request. It is calculated in the unit of milliseconds. The measurement time starts after the DNS lookup is completed. TTFB is different from Page weight, as it does depend on the server and infrastructure of the machine or the environment a website is getting operated.
Total number of requests
It is the total number of times a web browser requests assets and resources to load the requested page completely. The load on the server increases with each request, and it also depends upon the size of the resource requested. This may result in the slow working of the website. It is easy to calculate these metrics on a web browser.
It is the amount of time a website takes to move the switch from a white screen to the visibility of the first element on the screen. This time is important as it helps in making the visitor wait until all the elements on the page are loaded.
Speed Index is one of the performance testing parameters that depend upon the tool used for calculating it. It is calculated in milliseconds.
So these are some of the performance testing metrics that can be calculated to test the ability of the application to behave in the desired way in real operating conditions. They also help in developing software that does not frustrate and test the patience of a user.