Introduction Types Scope Objective Approach Pre-requisites Performance Metrics Load Test Configuration Of Web System Career Perspective page 3 What is Performance Testing
Performance Tests are tests that determine end to end timing of various time critical business processes and transactions under a particular workload.
page 4
What is Performance?
P=Capacity / Load
Bandwidth
Processor speed
Memory
Storage
page 5 Why Performance Test? Will my application meet the defined response-time requirements of my customers? Will my users experience acceptable response times, even during peak hours? What system capacity is required to handle expected load? Where are the bottlenecks in my multi-user environment? How can we detect errors that only occur under real-load conditions? How can we optimize the multi-user application before it goes live?
page 6 Why Performance Test?
Web Site Load (Number of concurrent users) Web Site Response Time
Good (0 - 8 sec.) Borderline (9 15 sec.) Unacceptable (15 30 sec.) Virtually Offline (> 30 sec.) The 8 Second Barrier Crash! (>120 sec.) Timeout page 7 When to do Performance Testing
Application is in production Doesnt support more than 10 users Response times are not acceptable Resource utilization is very high Customers are not happy Business Impact Application is performing well for single user
page 8 Prerequisites
Prior knowledge on Application/Architecture. Test Environment should be established . Functional testing should be completed. Application code should be freeze out. Test Data should be decided
page 9 Types of Performance Testing
Performance tests
Load Test
Stress Test
Scalability Test
Volume Test
Spike Test
Baseline Test
Benchmarking test
Spike Test
page 10 Performance Testing Tools
Popular Tools
Mercury (LoadRunner, Astra LoadTest)
Rational Robot (previously Performance Studio)
Segue SilkPerformer
Empirix E-Test Suite
Radview WebLoad
Compuware QALoad
OpenSTA
Microsoft Web Application Stress Tool page 11 Objectives
To demonstrate that the system functions to specification with acceptable response times End to End - To assess Business Process or Application performance. Component Level - Individual pieces of code and modules created by developers will be performance tested. Measure Application Server components performance under various loads. Measure database components performance under various loads. Monitor system resources under various loads. Measure the network delay between the server and clients page 12 Scope
Validate the Architecture Validate response time under load/Stress Validate Application Scalability System Tuning at Optimum level Ensuring System availability (Uptime) be adequate in live production
page 13 Performance Test - Approach page 14 Performance Metrics
Response time Turnaround time. Throughput: Rate Requests per second Bytes Per Second Packets Per Second (PPS) Hits Per Second Transactions Per Second
page 15 Most Critical Transactions 0.00 1.00 2.00 3.00 4.00 MC- Perf Build 9a - 09/26/2003 MC- Perf Build 9 - 09/16/2003 Test Type R e s p o n s e
T i m e AccountHistor y_Submit AccountSear ch_Submit Endcall_EndB utton ChangeInTerm s_Submit Homescreen_ Collections_O pen TRANSACTI ON LEVEL REPORT 79% 13% 5% 2% 1%0% 0% 0% <=2 >2<=3 >3<=4 >4<=5 >5<=10 >10<=15 >15 <=20 >20 Performance Testing - Sample Metrics page 16 Load Test Configuration Of Web System page 17 Career Perspective
Offers challenging environment Exposure to work under different applications Interaction with different teams Plays a Key Role in delivering the Project.
page 18 How Tools generally Work
Capture protocol level traffic. Use scripting language to replay that traffic. Do not interact with client system on playback. Do not actually invoke browsers on playback. Can simulate many users from many machines (IP Spoofing). Do not evaluate correctness of returned page, just codes and sizes. do not interact with client side portions of the application. do not natively evaluate correctness of returned pages. often do not handle conditional navigation. do not handle abandonment well.
Scripting concepts
Record EDIT playback Add data variance Add delays Add conditional logic Add code to evaluate correctness of key pages Add abandonment functions