PERFORMANCE TESTING
WHAT IS PERFORMANCE TESTING Although performance testing is a part of system testing, it can be regarded as a distinct level of testing The purpose of Performance testing is to measure and evaluate the response times, transaction rates and other time sensitive requirements of an application in order to verify that performance requirements have been achieved.
Load and Stress Testing 1. Load Testing :Load testing is testing an application under heavy loads, such as the testing of a web site under a range of loads to determine at what point the system response time will degrade or fail 2. Stress Testing :Stress testing is testing the system performance where some complicated activities like DB queries or repeated actions are applied on the system.
CAN U PERFORM MANUALLY ???…..
All of you, click the GO button again Manual Testing Is Problematic Coordinator Do you have the testing resources? Testing personnel Client machines All of you, click the GO button again How do you coordinate and synchronize users? How do you collect and analyze results? How do you achieve test repeatability? Web server Database server Testers Load Generation Analysis? 123.20 System Under Test
BENEFITS OF AUTOMATION !!!!!….
The LoadRunner Solution Controller manages the virtual users Replaces testers with virtual users Solves the resource limitations Runs many Vusers on a few machines Controller Analysis Analyzes results with graph & report tools Repeats tests with scripted actions Web server Database server Vuser host Load Generation System Under Test
Testing Process of LOAD RUNNER Planning the Test. Creating Vuser Scripts. Creating the Scenarios. Run the scenarios. Analyzing the test Results.
Vuser Scripts: Virtual User Generator Web server Database server Virtual User Generator
Virtual User Generator Script Script consists of 3 sections… Vuser_init( ) ----login to server Actions ----clients activities Vuser_end( ) ----logoff
Virtual User Script Model Logon (recording optional) vuser_init.c User Actions (Business Processes) Action1.c, Action2.c, etc. (e.g., Create Order, Ship Order) This section may be iterated (repeated) during one test run Logoff (recording optional) vuser_end.c
Virtual Users Several types of vusers GUI vusers WEB vusers RTE vusers TUXEDO vusers DB vusers ……………..
Scenario Vuser Scripts ++++ Vusers ++++ Host machines CONTROLLER
Managing Scenario Execution (Performance Under Gradual Load) The Controller: Gradually build up load on the server load all Vusers release Vusers in defined time intervals disable Rendezvous manually kill Vusers when all have been running and you’ve obtained enough transactions to measure The Vuser: Run time settings set number of iterations to be very high (i.e. 9000) ignore think times
Analysis Tools Graphs and Reports Analyze various load issues How many Vusers were running at any point? How many transactions executed at any point? Which transactions passed/failed? What was the transaction response time? What was the performance under gradual load? Pinpoint problem areas determine what is causing bottlenecks for each transaction view several graphs simultaneously zoom to focus on areas of interest filter to view specific transactions
Running Vusers How many Vusers were running at any point during execution? gradual user load
Rendezvous See how rendezvous influenced transaction performance
Transaction Performance What was transaction response time at any point during execution? Where does performance deteriorate?
Performance vs. Load View Multiple Graphs
Transaction Performance Summary Why is the Average so far from the middle of Min and Max?…(next slide)
Percentile Percentage of transactions performed within a given time range notice 90% of the Simple_Inquiry transactions executed within 3 seconds
Cross Scenario Graphing Compare results from two Scenario executions in the same graph(s)
Monitor Network Delay Which network segment is causing the delay?
Monitor Resources How is the server handling the load?
Performance Tunings Once u find the factors such as network delays, server resources, or transaction breakdowns , those influencing performance of application, by tunings u can achieve better performance….