A speedy and responsive site is directly correlated with higher levels of visitors and better user experience.
Performance testing plays a vital role. It is the only way to determine an application’s behavior at different levels of load and users.
But can performance tests be conducted manually like functional tests? Let’s look into this aspect of performance test through this article.
Delivering a quality product on time with complete Test coverage for the requirements is essential for any application.
Manual and Automation Testing have always existed as two parallel modes to help testers achieve this functional testing goal. However, manual test execution is time-consuming, expensive and is prone to errors. Automation testing addresses these basic challenges and helps in saving time and effort over time.
A few major advantages of Automation Testing:
- The same test script can be used for every execution by just making changes in test data (wherever required)
- Execution time is much less compared to manual execution
- Consistent results
- Fills gaps where Manual testing may not be apt or suitable. (Eg: Webservices)
Similarly, Performance Testing results are more reliable and relevant when automated test scripts are used rather than manual test cases.
- Performance testing is a means of quality assurance which involves testing software applications and understanding their performance at an expected workload or at a given point of time. Also, knowing the response time is an important parameter.
- The main focus or goal of performance testing is to determine its Speed, Scalability, and Stability.
- Speed and effectiveness can be determined by a computer, network, software program or a device through performance testing
Below is a representation of a Performance testing process:
Both Performance testing and Automated testing are indeed some forms of executing simple checks by using different tools. Generally, Test Automation is usually a combination of functional testing, load testing, and performance testing.
When a functional test automation script is adjusted to not only record pass/fail results but also to note the render/records times of objects/screens, the functional test automation script then gets converted into a performance monitor.
What You Will Learn:
The whole process goes as below:
- The load generator is started to test the server response time during load or at peak hours.
- Once the assumed target load is reached, the functional test automation suite is started to measure the actual time it takes to run everything through a fully rendered environment.
- This whole process will give a wonderful insight into what the end users will experience during heavy load on an application or during peak hours.
A diagram that explains the combination of “Performance” and “test automation” can be as below:
Performance Testing- Can it be done manually?
Now the question is, ”Can Performance testing be done only through automated test scripts or can it be done manually too?”.
As we have read earlier, reliable results are obtained when there is a combination of performance and automation testing. However, there are cases when the performance of the application can be determined manually also.
Let us understand this with the help of some examples:
Example1: Suppose a short performance test needs to be evaluated by a tester. This is for an AUT within a given time limit. Then, a sanity manual test can be evoked to find out the page load or response time.
Example 2: Similarly, consider a java based web application. In order to execute the performance test manually, in this case, many active sessions of the same application should be open for testing. Manually, we can determine the number of active sessions, a number of database connections open, and number of threads running. The amount of CPU time, the memory being used and a few more parameters can also be obtained.
Tivoli Performance Viewer (TPV) can be installed to monitor the parameters of interest. Usually, the test is performed by deploying the application on the server, accessing the application from various client machines and allowing multiple threads to run.
How is Tivoli Performance viewer used to monitor the performance of any WebSphere Application Server (WAS):
WebSphere Application Server (WAS) is nothing but a software product or framework that hosts java based web applications. The results/data obtained by performance monitoring using Performance viewer for any WAS can be analyzed to find out the factors that contribute to large response times. Following which, these factors can be modified to improve performance.
The procedure that is followed to record the performance is as below:
- Select the server that is to be monitored. As you can see in below diagram, Select “ server1”.
- While the application is running, server activity is monitored by viewing and examining the real-time data that is collected by Performance Monitoring Infrastructure (PMI), within the administrative console. The collected PMI data helps in attaining optimal performance.
Below diagram explains how it is done:
Check box for “Server1” is selected. On clicking “Start Monitoring”, performance viewer starts monitoring the application server’s PMI data.
(Click on image for enlarged view)
The below diagram explains different settings and views displayed in the left panel, that are available for “Server1” under Tivoli Performance Viewer. The right panel describes the data monitored for the parameter selected in the left panel.
As can be clearly seen from the diagram, the following parameters data can be viewed and analyzed:
- Summary reports (includes Servlets, EJBs, EJB Methods, Connection Pool, Thread Pool)
- Performance Modules (contain the option of JVM runtime which contains graph displaying runtime PMI data)
(Click on image for enlarged view)
- User configuration and logging setting are done so that the server performance logs can be viewed within the administrative console. These settings also affect the application server’s performance.
- The real-time data recorded by performance viewer i.e server performance logs, etc. can be reviewed later too.
Example 3: An application’s performance needs to be evaluated for its bandwidth under different available network speeds.
Example 4: A quick preliminary database performance test can be done manually to get the necessary information.
So, in all these instances basic performance testing can be done without any automation scripts. You might need some diagnostic or monitoring tools, but 100% automation is not absolutely necessary.
When can Manual Performance Tests help?
A non-performance tester can quickly perform manual tests without having to go through the process of setting up automated test suites or even without test automation knowledge.
This is very helpful when:
- Performance testers need a quick assessment of the product’s response under certain condition.
- To execute a sanity performance test i.e. running a few steps manually while troubleshooting the test.
What NOT to do?
A performance tester can also simulate the performance test conditions from several different client machines by reaching out to the servers individually, but that will not be a very effective way of running a performance test. So, keep in mind that not everything can be done manually.
Performance testing is considered one of the most technical and complex types of software testing. It requires extensive technical knowledge. Automated test scripts bring in a tremendous value to the testing effort. But we should not stop exploring new ways to be combined with performance testing. Manual testing can play a helping part.
Do you agree? What other variations of performance testing have you done?
Our upcoming tutorial will explain more about Website Performance Testing!