SlideShare a Scribd company logo
Sponsored by
Load Testing:
See a Bigger Picture
Alexander Podelko
alex.podelko@oracle.com
www.alexanderpodelko.com
@apodelko
April 1, 2014
Speaker Bio
• Have specialized in performance for the last 17 years
• Currently performance testing and optimization of
Hyperion products at Oracle
• Board director at CMG (http://cmg.org), organization
of performance and capacity professionals
– Next conference November 3-6, 2014 in Atlanta, GA
Disclaimer: The views expressed here are my personal views only and do not necessarily represent those of my current or
previous employers. All brands and trademarks mentioned are the property of their owners.
3
In This Session, You’ll Learn…
• Load testing and its role in performance risk
mitigation
• Different approaches: load generation
• Different approaches: environments
• Load testing tools
4
Load Testing: Terminology
Applying multi-user synthetic load to the system
• Load testing
• Performance testing
• Stress testing
• Scalability testing
• Volume testing
• Reliability testing
• Concurrency testing
• Endurance testing
• Longevity testing
• Soak testing
• Stability testing
5
The Stereotype
• Load / PerformanceTesting is:
– Last moment before deployment
– Last step in the waterfall process
– Protocol Level Record-and-Playback
– Large corporations
– Expensive tools requiring special skills
– Lab environment
– Scale-down environment
– …
6
Load Testing
• It is only one very specific kind of load testing
– Most popular due to easier integration in corporate SDLC
• But load testing in no way limited to this one
Technology evaluation
Infrastructure evaluation
Prototypes / POC
Component / unit
What/if
Performance troubleshooting
Performance optimization
Benchmarking
7
Performance Risk Mitigation
• Single-user performance engineering
– Profiling, WPO, single-user performance
• Software Performance Engineering
– Modeling, Performance Patterns
• Instrumentation / APM / Monitoring
– Production system insights
• Capacity Planning/Management
– ResourcesAllocation
• Continuous Integration / Deployment
– Ability to deploy and remove changes quickly
8
But all of them
don’t replace
load testing
Load testing
complements them in
several important ways
9
What Load Testing Adds
• Verification that the system handles the load
• Verification of multi-user performance
• Performance optimization
– Exactly the same load
• Debugging/verification of multi-user issues
• Testing self-regulation functionality
– Such as auto-scaling or changing the level of service
depending on load
10
Agenda
• Load testing and its role in performance risk
mitigation
• Different approaches: load generation
• Different approaches: environments
• Load testing tools
11
Load Testing
Process
Collect Requirements
Create Test Assets
Define Load
Run Tests
Analyze Results
Done
Modify System
Goals are met
Goals are not met
12
Load Generation
• Create test assets – run test
• A must step in load testing
• ‘Test assets’ - usually scripts or programs in
load testing
• Time constraints can make it very challenging
– Different for each product / interface
13
Record and Playback:
Protocol Level
• Virtual users: record communication between
two tiers and then playback an automatically
created script
• Usually after proper correlation /
parameterization
14
Record and Playback:
Protocol Level
Load Testing Tool
Virtual Users
ServerLoad Generator
Application
Network
15
Issues
• Usually doesn't work for testing components
• Each tool support a limited number of
technologies (protocols)
• Some technologies are very time-consuming
• Workload validity in case of sophisticated logic
on the client side is not guaranteed
16
Recalling Challenges
• 199x – SMB (Server Message Block), DCOM,
Java RMI
• 200x – Applets and ActiveX controls
• 201x – Rich InternetApplications
It was just a short period of time whenWeb sites
were simple – it was rather an exception
17
Not so Simple: Example
• Back-end calculation (Financial consolidation)
– Long time, shows progress bar
– Polling back-end
– Explicit loop is needed to work properly
18
Recorded Script
web_custom_request("XMLDataGrid.asp_7","URL={URL}/Data/XML
DataGrid.asp?Action=EXECUTE&TaskID=1024&RowStart=1&ColS
tart=2&RowEnd=1&ColEnd=2&SelType=0&Format=JavaScript",
LAST);
web_custom_request("XMLDataGrid.asp_8","URL={URL}/Data/XML
DataGrid.asp?Action=GETCONSOLSTATUS", LAST);
web_custom_request("XMLDataGrid.asp_9","URL={URL}/Data/XML
DataGrid.asp?Action=GETCONSOLSTATUS", LAST);
web_custom_request("XMLDataGrid.asp_9","URL={URL}/Data/XML
DataGrid.asp?Action=GETCONSOLSTATUS", LAST);
19
Working Script
web_custom_request("XMLDataGrid.asp_7","URL={URL}/Data/XML
DataGrid.asp?Action=EXECUTE&TaskID=1024&RowStart=1&Col
Start=2&RowEnd=1&ColEnd=2&SelType=0&Format=JavaScript",
LAST);
do {
sleep(3000);
web_reg_find("Text=1","SaveCount=abc_count",LAST);
web_custom_request("XMLDataGrid.asp_8","URL={URL}/Data/X
MLDataGrid.asp?Action=GETCONSOLSTATUS", LAST);
} while (strcmp(lr_eval_string("{abc_count}"),"1")==0);
20
Alternatives
• Manual
• Real Users
• Record and Playback, UI Level
• Programming
• Mixed
21
Manual
• Not an option for a large number of users
• Always variation in human input times
• Can be a good option to simulate quickly a
few users
• Can be used with other methods to verify
correctness
22
Real Users
• Full load (testing in production)
• Partial load (A/B testing, canary testing)
• You trade in the need to generate and
validate workload for a possibility of
performance issues and load variability.
23
Considerations
• Make sense for the following conditions
– Potential issues have minimal impact on user
satisfaction and company image
– Easy rollback of the changes
– Homogenous workload and a way to control it
– Fully parallel and scalable architecture
24
Record and Playback: UI Level
• Functional / regression testing tools
• Record and playback communication between
user and clientGUI
• Don't care about communication protocols /
internals
• Accurate data (real client, end-to-end)
25
History of the Approach
• Traditional tools, fat clients
– Require a separate machine (or a terminal session) per user
• Low-level graphical protocols
– Citrix, Remote Desktop
• Web tools, browser
– Require a separate browser instance
• Web tools, light-weight browser
– Require a separate light-weight browser instance
– For example, HtmlUnit or PhantomJS
26
Record and Playback: UI Level
Load Testing Tool
Virtual
Users
ServerLoad Generator
Application
Network
Browsers
27
Challenges
• Scalability
– Still require more resources
• Supported technologies
• Timing accuracy
• Playback accuracy
– For example, for HtmlUnit
28
Programming: Custom Test Harness
• Special program to generate workload
• Requires access to the API or source code
• Requires programming
• Could be cost effective solution in some
simple cases
29
Advantages
• Doesn’t require any special tool
• Starting version could be quickly created by
a programmer familiar with API
• Should work if API works
• You don't care what protocol is used for
communication
30
Disadvantages
• Efforts to update and maintain harness
increase drastically as you need to add
features
• When you have numerous products you really
need to create something like a commercial
load testing tool
31
Mixed Approach
• Programming using load testing tools
– Program a script instead of recording
– Run it using a load testing tool
• Implementation depends on the particular tool
– Scripting support
– Languages support
– API calls (may require external dll / client stubs)
32
Advantages
• Eliminates dependency on supporting
specific protocols
• Leverages all the features of the load testing
tool and allows using it as a test harness
• Sometimes simplifies work with difficult to
parameterize protocols
33
Considerations
• Requires access to API or source code
• Requires programming
• Minimal transaction that could be
measured is a request / API call
• Requires understanding of internals
34
More Considerations
• Requires a load test tool license for the
necessary number of users
• Environment may need to be set on all agents
• May require more resources on agents
• Results should be cautiously interpreted
35
Example 1: Essbase Query
• Multi-Dimensional Database
• C API
– Used by many applications and middleware
– Winsock scripts
• Quite difficult to parameterize and verify
• External DLL was made for major functions
36
Winsock Script
lrs_create_socket("socket0", "TCP", "LocalHost=0",
"RemoteHost=ess001.hyperion.com:1423", LrsLastArg);
lrs_send("socket0", "buf0", LrsLastArg);
lrs_receive("socket0", "buf1", LrsLastArg);
lrs_send("socket0", "buf2", LrsLastArg);
lrs_receive("socket0", "buf3", LrsLastArg);
lrs_save_searched_string("socket0",
LRS_LAST_RECEIVED, "Handle1",
"LB/BIN=x00x00vx00x04x00",
"RB/BIN=x04x00x06x00x06", 1, 0, -1);
lrs_send("socket0", "buf4", LrsLastArg);
lrs_receive("socket0", "buf5", LrsLastArg);
lrs_close_socket("socket0");
37
Winsock Script
send buf22 26165
"xffx00xf0a"
"x00x00x00x00x01x00x00x00x01x00x03x00"
"dx00bx00"
"y'<Handle1>x00"
"brx00x06x00fx00x1bex00x00rx00xd6aRN"
"x1ax00x06x00x00x00x00x00x00x00x00x00b"
"x00x00x00xe7x00x00x01x00x03x00x04x00"
"x10x00xccx04x05x00x04x00x80xd0x05x00t"
"x00x02x00x02x00bx00<x00x04"
"FY04aWorkingtYearTotaltELEMENT-FtProduct-P"
"x10<entity>tx00x02x00"
…
38
Script Using External DLL
lr_load_dll("c:templr_msas2k.dll");
pCTX = Init_Context();
hr = Connect(pCTX, "ess01", "user001","password");
…
lr_start_transaction("Mdx_q1");
sprintf(report, "SELECT %s.children on columns, %s.children on
rows FROM Shipment WHERE ([Measures].[Qty Shipped], %s,
%s)", lr_eval_string("{day}"), lr_eval_string("{product}"),
lr_eval_string("{customer}"), lr_eval_string("{shipper}"));
hr = RunQuery(pCTX, report);
lr_end_transaction("Mdx_q1",LR_AUTO);
39
Example 2: EDS
• Essbase Deployment Services
• Middleware, no GUI interface
• Functional test scripts in Java
• Solution - creation of LoadRunner scripts
from the functional test scripts
40
EDS Java Script
import lrapi.lr;
…
public int action() {
lr.start_transaction("01_Create_API_instance");
ess = IEssbase.Home.create(IEssbase.JAPI_VERSION);
lr.end_transaction("01_Create_API_instance", lr.AUTO);
lr.start_transaction("02_SignOn");
IEssDomain dom = ess.signOn(s_userName, s_password,
s_domainName, s_prefEesSvrName, s_orbType, s_port);
lr.end_transaction("02_SignOn", lr.AUTO);
…
41
Agenda
• Load testing and its role in performance risk
mitigation
• Different approaches: load generation
• Different approaches: environments
• Load testing tools
42
Environments
• Lab vs. Service (SaaS) vs. Cloud (IaaS)
– For both the SUT and load testing tool
• Test vs. Production
• No best solution, depends on your goals /
system
43
Scenarios
• System validation for high load
– Outside load (service or cloud), production system
– Wider scope, lower repeatability
• Performance optimization / troubleshooting
– Isolated lab environment
– Limited scope, high repeatability
• Testing in Cloud
– Lowering costs (in case of periodic tests)
– Limited scope, low repeatability
44
Agenda
• Load testing and its role in performance risk
mitigation
• Different approaches: load generation
• Different approaches: environments
• Load testing tools
45
Load Testing Tools
• Differ drastically
– Supported approaches / protocols
– Scripting / extendibility
– Supported environments
– Scalability
– Integration
– Result analysis
– Environment monitoring
– Cost/Licensing
– Available support and skills
46
Load Testing Tools
• There is no best tool – it depends on your
needs
• Almost every tool will work for a simple web
site
• If using more sophisticated technologies,
always check if the tool / approach supports it
47
Summary
• Load testing is an important way of
performance risk mitigation / part of the
performance engineering process
– Other ways don’t substitute load testing
• There are many ways to do load testing.
• There is no best approach or tool – it depends
on your needs.
48
Any questions?
49
Alexander Podelko
alex.podelko@oracle.com
www.alexanderpodelko.com
@apodelko
Load Testing: See a Bigger Picture, ALM Forum, 2014

More Related Content

What's hot

Getting start with Performance Testing
Getting start with Performance Testing Getting start with Performance Testing
Getting start with Performance Testing
Yogesh Deshmukh
 
Load and performance testing
Load and performance testingLoad and performance testing
Load and performance testingQualitest
 
An Introduction to Performance Testing
An Introduction to Performance TestingAn Introduction to Performance Testing
An Introduction to Performance Testing
SWAAM Tech
 
Neotys PAC 2018 - Bruno Da Silva
Neotys PAC 2018 - Bruno Da SilvaNeotys PAC 2018 - Bruno Da Silva
Neotys PAC 2018 - Bruno Da Silva
Neotys_Partner
 
Performance testing
Performance testingPerformance testing
Performance testing
Chalana Kahandawala
 
Introduction to Performance testing
Introduction to Performance testingIntroduction to Performance testing
Introduction to Performance testing
silviasiqueirahp
 
Continuous Performance Testing
Continuous Performance TestingContinuous Performance Testing
Continuous Performance Testing
Grid Dynamics
 
Performance Testing
Performance TestingPerformance Testing
Performance Testing
Selin Gungor
 
What is Performance Testing?
What is Performance Testing?What is Performance Testing?
What is Performance Testing?
QA InfoTech
 
Performance testing
Performance testingPerformance testing
Performance testing
Jyoti Babbar
 
Performance testing
Performance testingPerformance testing
Performance testing
Ranpreet kaur
 
Performance and load testing
Performance and load testingPerformance and load testing
Performance and load testingsonukalpana
 
An Introduction to Software Performance Engineering
An Introduction to Software Performance EngineeringAn Introduction to Software Performance Engineering
An Introduction to Software Performance Engineering
Correlsense
 
Performance Testing in Agile Process
Performance Testing in Agile ProcessPerformance Testing in Agile Process
Performance Testing in Agile Process
Idexcel Technologies
 
Performance Testing Using VS 2010 - Part 1
Performance Testing Using VS 2010 - Part 1Performance Testing Using VS 2010 - Part 1
Performance Testing Using VS 2010 - Part 1
Mohamed Tarek
 
Test automation lessons from WebSphere Application Server
Test automation lessons from WebSphere Application ServerTest automation lessons from WebSphere Application Server
Test automation lessons from WebSphere Application Server
Robbie Minshall
 
What\'s new in LoadRunner and Performance Center 11
What\'s new in LoadRunner and Performance Center 11What\'s new in LoadRunner and Performance Center 11
What\'s new in LoadRunner and Performance Center 11fsyed
 
Load Testing Strategy 101
Load Testing Strategy 101Load Testing Strategy 101
Load Testing Strategy 101
iradari
 

What's hot (20)

Getting start with Performance Testing
Getting start with Performance Testing Getting start with Performance Testing
Getting start with Performance Testing
 
Load and performance testing
Load and performance testingLoad and performance testing
Load and performance testing
 
An Introduction to Performance Testing
An Introduction to Performance TestingAn Introduction to Performance Testing
An Introduction to Performance Testing
 
Neotys PAC 2018 - Bruno Da Silva
Neotys PAC 2018 - Bruno Da SilvaNeotys PAC 2018 - Bruno Da Silva
Neotys PAC 2018 - Bruno Da Silva
 
Performance testing
Performance testingPerformance testing
Performance testing
 
Introduction to Performance testing
Introduction to Performance testingIntroduction to Performance testing
Introduction to Performance testing
 
Continuous Performance Testing
Continuous Performance TestingContinuous Performance Testing
Continuous Performance Testing
 
Performance Testing
Performance TestingPerformance Testing
Performance Testing
 
What is Performance Testing?
What is Performance Testing?What is Performance Testing?
What is Performance Testing?
 
Pm 6 testing
Pm 6 testingPm 6 testing
Pm 6 testing
 
Performance testing
Performance testingPerformance testing
Performance testing
 
Performance testing
Performance testingPerformance testing
Performance testing
 
Performance and load testing
Performance and load testingPerformance and load testing
Performance and load testing
 
An Introduction to Software Performance Engineering
An Introduction to Software Performance EngineeringAn Introduction to Software Performance Engineering
An Introduction to Software Performance Engineering
 
Performance Testing in Agile Process
Performance Testing in Agile ProcessPerformance Testing in Agile Process
Performance Testing in Agile Process
 
Performance Testing Using VS 2010 - Part 1
Performance Testing Using VS 2010 - Part 1Performance Testing Using VS 2010 - Part 1
Performance Testing Using VS 2010 - Part 1
 
Test automation lessons from WebSphere Application Server
Test automation lessons from WebSphere Application ServerTest automation lessons from WebSphere Application Server
Test automation lessons from WebSphere Application Server
 
What\'s new in LoadRunner and Performance Center 11
What\'s new in LoadRunner and Performance Center 11What\'s new in LoadRunner and Performance Center 11
What\'s new in LoadRunner and Performance Center 11
 
Load Testing Strategy 101
Load Testing Strategy 101Load Testing Strategy 101
Load Testing Strategy 101
 
Performance testing
Performance testingPerformance testing
Performance testing
 

Viewers also liked

Performance testing: respect the difference at swqd14
Performance testing: respect the difference at swqd14Performance testing: respect the difference at swqd14
Performance testing: respect the difference at swqd14
Alexander Podelko
 
QA. Load Testing
QA. Load TestingQA. Load Testing
QA. Load Testing
Alex Galkin
 
Load Testing: See a Bigger Picture
Load Testing: See a Bigger PictureLoad Testing: See a Bigger Picture
Load Testing: See a Bigger Picture
Alexander Podelko
 
Performance Requirements: the Backbone of the Performance Engineering Process
Performance Requirements: the Backbone of the Performance Engineering ProcessPerformance Requirements: the Backbone of the Performance Engineering Process
Performance Requirements: the Backbone of the Performance Engineering Process
Alexander Podelko
 
Performance: See the Whole Picture
Performance: See the Whole PicturePerformance: See the Whole Picture
Performance: See the Whole Picture
Alexander Podelko
 
Performance Assurance for Packaged Applications
Performance Assurance for Packaged ApplicationsPerformance Assurance for Packaged Applications
Performance Assurance for Packaged Applications
Alexander Podelko
 
Improving Your Selenium WebDriver Tests - Belgium testing days_2016
Improving Your Selenium WebDriver Tests - Belgium testing days_2016Improving Your Selenium WebDriver Tests - Belgium testing days_2016
Improving Your Selenium WebDriver Tests - Belgium testing days_2016
Roy de Kleijn
 
Performance Testing in Context; From Simple to Rocket Science
Performance Testing in Context; From Simple to Rocket SciencePerformance Testing in Context; From Simple to Rocket Science
Performance Testing in Context; From Simple to Rocket Science
Scott Barber
 
A Short History of Performance Engineering
A Short History of Performance EngineeringA Short History of Performance Engineering
A Short History of Performance Engineering
Alexander Podelko
 
A Short History of Performance Engineering
A Short History of Performance EngineeringA Short History of Performance Engineering
A Short History of Performance Engineering
Alexander Podelko
 
Load Testing and JMeter Presentation
Load Testing and JMeter PresentationLoad Testing and JMeter Presentation
Load Testing and JMeter Presentation
Neill Lima
 
Tools of the Trade: Load Testing - Ignite session at WebPerfDays NY 14
Tools of the Trade: Load Testing -  Ignite session at WebPerfDays NY 14Tools of the Trade: Load Testing -  Ignite session at WebPerfDays NY 14
Tools of the Trade: Load Testing - Ignite session at WebPerfDays NY 14
Alexander Podelko
 
Performance testing jmeter
Performance testing jmeterPerformance testing jmeter
Performance testing jmeterBhojan Rajan
 
September_08 SQuAd Presentation
September_08 SQuAd PresentationSeptember_08 SQuAd Presentation
September_08 SQuAd Presentation
iradari
 

Viewers also liked (14)

Performance testing: respect the difference at swqd14
Performance testing: respect the difference at swqd14Performance testing: respect the difference at swqd14
Performance testing: respect the difference at swqd14
 
QA. Load Testing
QA. Load TestingQA. Load Testing
QA. Load Testing
 
Load Testing: See a Bigger Picture
Load Testing: See a Bigger PictureLoad Testing: See a Bigger Picture
Load Testing: See a Bigger Picture
 
Performance Requirements: the Backbone of the Performance Engineering Process
Performance Requirements: the Backbone of the Performance Engineering ProcessPerformance Requirements: the Backbone of the Performance Engineering Process
Performance Requirements: the Backbone of the Performance Engineering Process
 
Performance: See the Whole Picture
Performance: See the Whole PicturePerformance: See the Whole Picture
Performance: See the Whole Picture
 
Performance Assurance for Packaged Applications
Performance Assurance for Packaged ApplicationsPerformance Assurance for Packaged Applications
Performance Assurance for Packaged Applications
 
Improving Your Selenium WebDriver Tests - Belgium testing days_2016
Improving Your Selenium WebDriver Tests - Belgium testing days_2016Improving Your Selenium WebDriver Tests - Belgium testing days_2016
Improving Your Selenium WebDriver Tests - Belgium testing days_2016
 
Performance Testing in Context; From Simple to Rocket Science
Performance Testing in Context; From Simple to Rocket SciencePerformance Testing in Context; From Simple to Rocket Science
Performance Testing in Context; From Simple to Rocket Science
 
A Short History of Performance Engineering
A Short History of Performance EngineeringA Short History of Performance Engineering
A Short History of Performance Engineering
 
A Short History of Performance Engineering
A Short History of Performance EngineeringA Short History of Performance Engineering
A Short History of Performance Engineering
 
Load Testing and JMeter Presentation
Load Testing and JMeter PresentationLoad Testing and JMeter Presentation
Load Testing and JMeter Presentation
 
Tools of the Trade: Load Testing - Ignite session at WebPerfDays NY 14
Tools of the Trade: Load Testing -  Ignite session at WebPerfDays NY 14Tools of the Trade: Load Testing -  Ignite session at WebPerfDays NY 14
Tools of the Trade: Load Testing - Ignite session at WebPerfDays NY 14
 
Performance testing jmeter
Performance testing jmeterPerformance testing jmeter
Performance testing jmeter
 
September_08 SQuAd Presentation
September_08 SQuAd PresentationSeptember_08 SQuAd Presentation
September_08 SQuAd Presentation
 

Similar to Load Testing: See a Bigger Picture, ALM Forum, 2014

HP LoadRunner
HP LoadRunnerHP LoadRunner
HP LoadRunner
Fayis-QA
 
Automation Tool Overview
Automation Tool OverviewAutomation Tool Overview
Automation Tool Overview
ANKUR-BA
 
Automation Tools Overview
Automation Tools OverviewAutomation Tools Overview
Automation Tools Overview
Sachin-QA
 
Automation Tools Overview
Automation Tools OverviewAutomation Tools Overview
Automation Tools Overview
Murageppa-QA
 
Introduction to performance testing
Introduction to performance testingIntroduction to performance testing
Introduction to performance testing
Richard Bishop
 
Laravel Load Testing: Strategies and Tools
Laravel Load Testing: Strategies and ToolsLaravel Load Testing: Strategies and Tools
Laravel Load Testing: Strategies and Tools
Muhammad Shehata
 
Performance Testing your Kuali Student Product
Performance Testing your Kuali Student ProductPerformance Testing your Kuali Student Product
Performance Testing your Kuali Student Product
Kuali Student Project
 
Pm 6 testing
Pm 6 testingPm 6 testing
Pm 6 testing
Radiant Minds
 
Context-Driven Performance Testing
Context-Driven Performance TestingContext-Driven Performance Testing
Context-Driven Performance Testing
Alexander Podelko
 
Project Life Cycle and Effort Estimation
Project Life Cycle andEffort EstimationProject Life Cycle andEffort Estimation
Project Life Cycle and Effort Estimation
ssuserb7c8b8
 
Real-World Load Testing of ADF Fusion Applications Demonstrated - Oracle Ope...
Real-World Load Testing of ADF Fusion Applications Demonstrated  - Oracle Ope...Real-World Load Testing of ADF Fusion Applications Demonstrated  - Oracle Ope...
Real-World Load Testing of ADF Fusion Applications Demonstrated - Oracle Ope...
Getting value from IoT, Integration and Data Analytics
 
Load Testing.pdf
Load Testing.pdfLoad Testing.pdf
Load Testing.pdf
YAGYAJAISWAL1
 
Response time difference analysis of performance testing tools
Response time difference analysis of performance testing toolsResponse time difference analysis of performance testing tools
Response time difference analysis of performance testing tools
Spoorthi Sham
 
Automated testing 101
Automated testing 101Automated testing 101
Automated testing 101
Tabitha Chapman
 
Alexander Podelko - Context-Driven Performance Testing
Alexander Podelko - Context-Driven Performance TestingAlexander Podelko - Context-Driven Performance Testing
Alexander Podelko - Context-Driven Performance Testing
Neotys_Partner
 
Performance testing
Performance testing Performance testing
Performance testing
ekatechserv
 
Software Project Management lecture 10
Software Project Management lecture 10Software Project Management lecture 10
Software Project Management lecture 10Syed Muhammad Hammad
 
Other Testing Types
Other Testing TypesOther Testing Types
Other Testing Types
Rajathi-QA
 
July webinar l How to Handle the Holiday Retail Rush with Agile Performance T...
July webinar l How to Handle the Holiday Retail Rush with Agile Performance T...July webinar l How to Handle the Holiday Retail Rush with Agile Performance T...
July webinar l How to Handle the Holiday Retail Rush with Agile Performance T...
Apica
 

Similar to Load Testing: See a Bigger Picture, ALM Forum, 2014 (20)

JMeter
JMeterJMeter
JMeter
 
HP LoadRunner
HP LoadRunnerHP LoadRunner
HP LoadRunner
 
Automation Tool Overview
Automation Tool OverviewAutomation Tool Overview
Automation Tool Overview
 
Automation Tools Overview
Automation Tools OverviewAutomation Tools Overview
Automation Tools Overview
 
Automation Tools Overview
Automation Tools OverviewAutomation Tools Overview
Automation Tools Overview
 
Introduction to performance testing
Introduction to performance testingIntroduction to performance testing
Introduction to performance testing
 
Laravel Load Testing: Strategies and Tools
Laravel Load Testing: Strategies and ToolsLaravel Load Testing: Strategies and Tools
Laravel Load Testing: Strategies and Tools
 
Performance Testing your Kuali Student Product
Performance Testing your Kuali Student ProductPerformance Testing your Kuali Student Product
Performance Testing your Kuali Student Product
 
Pm 6 testing
Pm 6 testingPm 6 testing
Pm 6 testing
 
Context-Driven Performance Testing
Context-Driven Performance TestingContext-Driven Performance Testing
Context-Driven Performance Testing
 
Project Life Cycle and Effort Estimation
Project Life Cycle andEffort EstimationProject Life Cycle andEffort Estimation
Project Life Cycle and Effort Estimation
 
Real-World Load Testing of ADF Fusion Applications Demonstrated - Oracle Ope...
Real-World Load Testing of ADF Fusion Applications Demonstrated  - Oracle Ope...Real-World Load Testing of ADF Fusion Applications Demonstrated  - Oracle Ope...
Real-World Load Testing of ADF Fusion Applications Demonstrated - Oracle Ope...
 
Load Testing.pdf
Load Testing.pdfLoad Testing.pdf
Load Testing.pdf
 
Response time difference analysis of performance testing tools
Response time difference analysis of performance testing toolsResponse time difference analysis of performance testing tools
Response time difference analysis of performance testing tools
 
Automated testing 101
Automated testing 101Automated testing 101
Automated testing 101
 
Alexander Podelko - Context-Driven Performance Testing
Alexander Podelko - Context-Driven Performance TestingAlexander Podelko - Context-Driven Performance Testing
Alexander Podelko - Context-Driven Performance Testing
 
Performance testing
Performance testing Performance testing
Performance testing
 
Software Project Management lecture 10
Software Project Management lecture 10Software Project Management lecture 10
Software Project Management lecture 10
 
Other Testing Types
Other Testing TypesOther Testing Types
Other Testing Types
 
July webinar l How to Handle the Holiday Retail Rush with Agile Performance T...
July webinar l How to Handle the Holiday Retail Rush with Agile Performance T...July webinar l How to Handle the Holiday Retail Rush with Agile Performance T...
July webinar l How to Handle the Holiday Retail Rush with Agile Performance T...
 

Recently uploaded

Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 

Recently uploaded (20)

Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 

Load Testing: See a Bigger Picture, ALM Forum, 2014

  • 2. Load Testing: See a Bigger Picture Alexander Podelko alex.podelko@oracle.com www.alexanderpodelko.com @apodelko April 1, 2014
  • 3. Speaker Bio • Have specialized in performance for the last 17 years • Currently performance testing and optimization of Hyperion products at Oracle • Board director at CMG (http://cmg.org), organization of performance and capacity professionals – Next conference November 3-6, 2014 in Atlanta, GA Disclaimer: The views expressed here are my personal views only and do not necessarily represent those of my current or previous employers. All brands and trademarks mentioned are the property of their owners. 3
  • 4. In This Session, You’ll Learn… • Load testing and its role in performance risk mitigation • Different approaches: load generation • Different approaches: environments • Load testing tools 4
  • 5. Load Testing: Terminology Applying multi-user synthetic load to the system • Load testing • Performance testing • Stress testing • Scalability testing • Volume testing • Reliability testing • Concurrency testing • Endurance testing • Longevity testing • Soak testing • Stability testing 5
  • 6. The Stereotype • Load / PerformanceTesting is: – Last moment before deployment – Last step in the waterfall process – Protocol Level Record-and-Playback – Large corporations – Expensive tools requiring special skills – Lab environment – Scale-down environment – … 6
  • 7. Load Testing • It is only one very specific kind of load testing – Most popular due to easier integration in corporate SDLC • But load testing in no way limited to this one Technology evaluation Infrastructure evaluation Prototypes / POC Component / unit What/if Performance troubleshooting Performance optimization Benchmarking 7
  • 8. Performance Risk Mitigation • Single-user performance engineering – Profiling, WPO, single-user performance • Software Performance Engineering – Modeling, Performance Patterns • Instrumentation / APM / Monitoring – Production system insights • Capacity Planning/Management – ResourcesAllocation • Continuous Integration / Deployment – Ability to deploy and remove changes quickly 8
  • 9. But all of them don’t replace load testing Load testing complements them in several important ways 9
  • 10. What Load Testing Adds • Verification that the system handles the load • Verification of multi-user performance • Performance optimization – Exactly the same load • Debugging/verification of multi-user issues • Testing self-regulation functionality – Such as auto-scaling or changing the level of service depending on load 10
  • 11. Agenda • Load testing and its role in performance risk mitigation • Different approaches: load generation • Different approaches: environments • Load testing tools 11
  • 12. Load Testing Process Collect Requirements Create Test Assets Define Load Run Tests Analyze Results Done Modify System Goals are met Goals are not met 12
  • 13. Load Generation • Create test assets – run test • A must step in load testing • ‘Test assets’ - usually scripts or programs in load testing • Time constraints can make it very challenging – Different for each product / interface 13
  • 14. Record and Playback: Protocol Level • Virtual users: record communication between two tiers and then playback an automatically created script • Usually after proper correlation / parameterization 14
  • 15. Record and Playback: Protocol Level Load Testing Tool Virtual Users ServerLoad Generator Application Network 15
  • 16. Issues • Usually doesn't work for testing components • Each tool support a limited number of technologies (protocols) • Some technologies are very time-consuming • Workload validity in case of sophisticated logic on the client side is not guaranteed 16
  • 17. Recalling Challenges • 199x – SMB (Server Message Block), DCOM, Java RMI • 200x – Applets and ActiveX controls • 201x – Rich InternetApplications It was just a short period of time whenWeb sites were simple – it was rather an exception 17
  • 18. Not so Simple: Example • Back-end calculation (Financial consolidation) – Long time, shows progress bar – Polling back-end – Explicit loop is needed to work properly 18
  • 21. Alternatives • Manual • Real Users • Record and Playback, UI Level • Programming • Mixed 21
  • 22. Manual • Not an option for a large number of users • Always variation in human input times • Can be a good option to simulate quickly a few users • Can be used with other methods to verify correctness 22
  • 23. Real Users • Full load (testing in production) • Partial load (A/B testing, canary testing) • You trade in the need to generate and validate workload for a possibility of performance issues and load variability. 23
  • 24. Considerations • Make sense for the following conditions – Potential issues have minimal impact on user satisfaction and company image – Easy rollback of the changes – Homogenous workload and a way to control it – Fully parallel and scalable architecture 24
  • 25. Record and Playback: UI Level • Functional / regression testing tools • Record and playback communication between user and clientGUI • Don't care about communication protocols / internals • Accurate data (real client, end-to-end) 25
  • 26. History of the Approach • Traditional tools, fat clients – Require a separate machine (or a terminal session) per user • Low-level graphical protocols – Citrix, Remote Desktop • Web tools, browser – Require a separate browser instance • Web tools, light-weight browser – Require a separate light-weight browser instance – For example, HtmlUnit or PhantomJS 26
  • 27. Record and Playback: UI Level Load Testing Tool Virtual Users ServerLoad Generator Application Network Browsers 27
  • 28. Challenges • Scalability – Still require more resources • Supported technologies • Timing accuracy • Playback accuracy – For example, for HtmlUnit 28
  • 29. Programming: Custom Test Harness • Special program to generate workload • Requires access to the API or source code • Requires programming • Could be cost effective solution in some simple cases 29
  • 30. Advantages • Doesn’t require any special tool • Starting version could be quickly created by a programmer familiar with API • Should work if API works • You don't care what protocol is used for communication 30
  • 31. Disadvantages • Efforts to update and maintain harness increase drastically as you need to add features • When you have numerous products you really need to create something like a commercial load testing tool 31
  • 32. Mixed Approach • Programming using load testing tools – Program a script instead of recording – Run it using a load testing tool • Implementation depends on the particular tool – Scripting support – Languages support – API calls (may require external dll / client stubs) 32
  • 33. Advantages • Eliminates dependency on supporting specific protocols • Leverages all the features of the load testing tool and allows using it as a test harness • Sometimes simplifies work with difficult to parameterize protocols 33
  • 34. Considerations • Requires access to API or source code • Requires programming • Minimal transaction that could be measured is a request / API call • Requires understanding of internals 34
  • 35. More Considerations • Requires a load test tool license for the necessary number of users • Environment may need to be set on all agents • May require more resources on agents • Results should be cautiously interpreted 35
  • 36. Example 1: Essbase Query • Multi-Dimensional Database • C API – Used by many applications and middleware – Winsock scripts • Quite difficult to parameterize and verify • External DLL was made for major functions 36
  • 37. Winsock Script lrs_create_socket("socket0", "TCP", "LocalHost=0", "RemoteHost=ess001.hyperion.com:1423", LrsLastArg); lrs_send("socket0", "buf0", LrsLastArg); lrs_receive("socket0", "buf1", LrsLastArg); lrs_send("socket0", "buf2", LrsLastArg); lrs_receive("socket0", "buf3", LrsLastArg); lrs_save_searched_string("socket0", LRS_LAST_RECEIVED, "Handle1", "LB/BIN=x00x00vx00x04x00", "RB/BIN=x04x00x06x00x06", 1, 0, -1); lrs_send("socket0", "buf4", LrsLastArg); lrs_receive("socket0", "buf5", LrsLastArg); lrs_close_socket("socket0"); 37
  • 38. Winsock Script send buf22 26165 "xffx00xf0a" "x00x00x00x00x01x00x00x00x01x00x03x00" "dx00bx00" "y'<Handle1>x00" "brx00x06x00fx00x1bex00x00rx00xd6aRN" "x1ax00x06x00x00x00x00x00x00x00x00x00b" "x00x00x00xe7x00x00x01x00x03x00x04x00" "x10x00xccx04x05x00x04x00x80xd0x05x00t" "x00x02x00x02x00bx00<x00x04" "FY04aWorkingtYearTotaltELEMENT-FtProduct-P" "x10<entity>tx00x02x00" … 38
  • 39. Script Using External DLL lr_load_dll("c:templr_msas2k.dll"); pCTX = Init_Context(); hr = Connect(pCTX, "ess01", "user001","password"); … lr_start_transaction("Mdx_q1"); sprintf(report, "SELECT %s.children on columns, %s.children on rows FROM Shipment WHERE ([Measures].[Qty Shipped], %s, %s)", lr_eval_string("{day}"), lr_eval_string("{product}"), lr_eval_string("{customer}"), lr_eval_string("{shipper}")); hr = RunQuery(pCTX, report); lr_end_transaction("Mdx_q1",LR_AUTO); 39
  • 40. Example 2: EDS • Essbase Deployment Services • Middleware, no GUI interface • Functional test scripts in Java • Solution - creation of LoadRunner scripts from the functional test scripts 40
  • 41. EDS Java Script import lrapi.lr; … public int action() { lr.start_transaction("01_Create_API_instance"); ess = IEssbase.Home.create(IEssbase.JAPI_VERSION); lr.end_transaction("01_Create_API_instance", lr.AUTO); lr.start_transaction("02_SignOn"); IEssDomain dom = ess.signOn(s_userName, s_password, s_domainName, s_prefEesSvrName, s_orbType, s_port); lr.end_transaction("02_SignOn", lr.AUTO); … 41
  • 42. Agenda • Load testing and its role in performance risk mitigation • Different approaches: load generation • Different approaches: environments • Load testing tools 42
  • 43. Environments • Lab vs. Service (SaaS) vs. Cloud (IaaS) – For both the SUT and load testing tool • Test vs. Production • No best solution, depends on your goals / system 43
  • 44. Scenarios • System validation for high load – Outside load (service or cloud), production system – Wider scope, lower repeatability • Performance optimization / troubleshooting – Isolated lab environment – Limited scope, high repeatability • Testing in Cloud – Lowering costs (in case of periodic tests) – Limited scope, low repeatability 44
  • 45. Agenda • Load testing and its role in performance risk mitigation • Different approaches: load generation • Different approaches: environments • Load testing tools 45
  • 46. Load Testing Tools • Differ drastically – Supported approaches / protocols – Scripting / extendibility – Supported environments – Scalability – Integration – Result analysis – Environment monitoring – Cost/Licensing – Available support and skills 46
  • 47. Load Testing Tools • There is no best tool – it depends on your needs • Almost every tool will work for a simple web site • If using more sophisticated technologies, always check if the tool / approach supports it 47
  • 48. Summary • Load testing is an important way of performance risk mitigation / part of the performance engineering process – Other ways don’t substitute load testing • There are many ways to do load testing. • There is no best approach or tool – it depends on your needs. 48