SlideShare uma empresa Scribd logo
1 de 50
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

Mais conteúdo relacionado

Mais procurados

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 TestingSWAAM Tech
 
Neotys PAC 2018 - Bruno Da Silva
Neotys PAC 2018 - Bruno Da SilvaNeotys PAC 2018 - Bruno Da Silva
Neotys PAC 2018 - Bruno Da SilvaNeotys_Partner
 
Introduction to Performance testing
Introduction to Performance testingIntroduction to Performance testing
Introduction to Performance testingsilviasiqueirahp
 
Continuous Performance Testing
Continuous Performance TestingContinuous Performance Testing
Continuous Performance TestingGrid Dynamics
 
Performance Testing
Performance TestingPerformance Testing
Performance TestingSelin 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 testingJyoti Babbar
 
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 EngineeringCorrelsense
 
Performance Testing in Agile Process
Performance Testing in Agile ProcessPerformance Testing in Agile Process
Performance Testing in Agile ProcessIdexcel 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 1Mohamed 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 ServerRobbie 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 101iradari
 

Mais procurados (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
 

Destaque

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 swqd14Alexander Podelko
 
QA. Load Testing
QA. Load TestingQA. Load Testing
QA. Load TestingAlex Galkin
 
Load Testing: See a Bigger Picture
Load Testing: See a Bigger PictureLoad Testing: See a Bigger Picture
Load Testing: See a Bigger PictureAlexander 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 ProcessAlexander Podelko
 
Performance: See the Whole Picture
Performance: See the Whole PicturePerformance: See the Whole Picture
Performance: See the Whole PictureAlexander Podelko
 
Performance Assurance for Packaged Applications
Performance Assurance for Packaged ApplicationsPerformance Assurance for Packaged Applications
Performance Assurance for Packaged ApplicationsAlexander 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_2016Roy 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 ScienceScott Barber
 
A Short History of Performance Engineering
A Short History of Performance EngineeringA Short History of Performance Engineering
A Short History of Performance EngineeringAlexander Podelko
 
A Short History of Performance Engineering
A Short History of Performance EngineeringA Short History of Performance Engineering
A Short History of Performance EngineeringAlexander Podelko
 
Load Testing and JMeter Presentation
Load Testing and JMeter PresentationLoad Testing and JMeter Presentation
Load Testing and JMeter PresentationNeill 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 14Alexander 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 Presentationiradari
 

Destaque (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
 

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

HP LoadRunner
HP LoadRunnerHP LoadRunner
HP LoadRunnerFayis-QA
 
Automation Tool Overview
Automation Tool OverviewAutomation Tool Overview
Automation Tool OverviewANKUR-BA
 
Automation Tools Overview
Automation Tools OverviewAutomation Tools Overview
Automation Tools OverviewSachin-QA
 
Automation Tools Overview
Automation Tools OverviewAutomation Tools Overview
Automation Tools OverviewMurageppa-QA
 
Introduction to performance testing
Introduction to performance testingIntroduction to performance testing
Introduction to performance testingRichard Bishop
 
Laravel Load Testing: Strategies and Tools
Laravel Load Testing: Strategies and ToolsLaravel Load Testing: Strategies and Tools
Laravel Load Testing: Strategies and ToolsMuhammad Shehata
 
Performance Testing your Kuali Student Product
Performance Testing your Kuali Student ProductPerformance Testing your Kuali Student Product
Performance Testing your Kuali Student ProductKuali Student Project
 
Context-Driven Performance Testing
Context-Driven Performance TestingContext-Driven Performance Testing
Context-Driven Performance TestingAlexander Podelko
 
Project Life Cycle and Effort Estimation
Project Life Cycle andEffort EstimationProject Life Cycle andEffort Estimation
Project Life Cycle and Effort Estimationssuserb7c8b8
 
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 toolsSpoorthi Sham
 
Alexander Podelko - Context-Driven Performance Testing
Alexander Podelko - Context-Driven Performance TestingAlexander Podelko - Context-Driven Performance Testing
Alexander Podelko - Context-Driven Performance TestingNeotys_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 TypesRajathi-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
 

Semelhante a 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...
 

Último

Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 

Último (20)

Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 

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