SlideShare une entreprise Scribd logo
1  sur  48
1
Load Testing: See a Bigger
Picture
Alexander Podelko
alex.podelko@oracle.com
www.alexanderpodelko.com
@apodelko
February 28, 2013
2
About Me
 Specialize in performance last 16 years
 Currently performance testing and
optimization of Hyperion products at Oracle
 Blog at http://alexanderpodelko.com/blog, have a
collection of performance-related links at
http://alexanderpodelko.com, on Twitter as @apodelko
 Involved in CMG http://cmg.org, a volunteer
organization of performance and capacity
planning professionals
– Conference November 4-8, 2013 in La Jolla, CA
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
Agenda
 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 / Performance Testing 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
The Stereotype
 Load / Performance Testing 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
– …
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
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
– Resources Allocation
 Continuous Integration / Deployment
– Ability to deploy and remove changes quickly
9
But all of them
don’t replace
load testing
Load testing
complements
them an several
important ways
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
11
Agenda
 Load testing and its role in performance risk
mitigation
 Different approaches: load generation
 Different approaches: environments
 Load testing tools
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
13
Load Generation
 Create tests assets – run test
 A must step in load testing
 ‘Tests assets’ - usually scripts or programs in
load testing
 Time constraints can make it very challenging
– Different for each product / interface
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
15
Record and Playback:
Protocol Level
Load Testing Tool
Virtual Users
ServerLoad Generator
Application
Network
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
17
Recalling Challenges
 199x – SMB (Server Message Block),
DCOM, Java RMI
 200x – Applets and ActiveX controls
 201x – Rich Internet Applications
It was just a short period of time when Web
sites were simple – it was rather an
exception
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
19
Recorded Script
web_custom_request("XMLDataGrid.asp_7","URL={URL}/
Data/XMLDataGrid.asp?Action=EXECUTE&TaskID=1024
&RowStart=1&ColStart=2&RowEnd=1&ColEnd=2&SelTy
pe=0&Format=JavaScript", LAST);
web_custom_request("XMLDataGrid.asp_8","URL={URL}/
Data/XMLDataGrid.asp?Action=GETCONSOLSTATUS",
LAST);
web_custom_request("XMLDataGrid.asp_9","URL={URL}/
Data/XMLDataGrid.asp?Action=GETCONSOLSTATUS",
LAST);
web_custom_request("XMLDataGrid.asp_9","URL={URL}/
Data/XMLDataGrid.asp?Action=GETCONSOLSTATUS",
LAST);
20
Working Script
web_custom_request("XMLDataGrid.asp_7","URL={URL}/
Data/XMLDataGrid.asp?Action=EXECUTE&TaskID=1024
&RowStart=1&ColStart=2&RowEnd=1&ColEnd=2&SelTy
pe=0&Format=JavaScript", LAST);
do {
sleep(3000);
web_reg_find("Text=1","SaveCount=abc_count",LAST);
web_custom_request("XMLDataGrid.asp_8","URL={UR
L}/Data/XMLDataGrid.asp?Action=GETCONSOLSTATU
S", LAST);
} while (strcmp(lr_eval_string("{abc_count}"),"1")==0);
21
Alternatives
 Manual
 Record and Playback, UI-Level
 Programming
 Mixed
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
23
Record and Playback: UI
Level
 Functional / regression testing tools
 Record and playback communication
between user and client GUI
 Don't care about communication protocols /
internals
 Accurate data (real client, end-to-end)
24
History of the Approach
 Traditional tools, fat clients
– Require a separate machine (or at least 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
25
Record and Playback: UI
Level
Load Testing
Tool
Virtual
Users
ServerLoad Generator
Application
Network
Brow
sers
26
Challenges
 Scalability
– Still require more resources
 Supported technologies
 Timing accuracy
 Playback accuracy
– For example, for HtmlUnit
27
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
28
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
29
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
30
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
– Supporting languages
– API calls (may require external dll / client stubs)
31
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
32
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
33
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
34
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
35
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");
36
Winsock Script
send buf22 26165
"xffx00xf0a"
"x00x00x00x00x01x00x00x00x01x00x03x00"
"dx00bx00"
"y'<Handle1>x00"
"brx00x06x00fx00x1bex00x00rx00xd6aRN"
"x1ax00x06x00x00x00x00x00x00x00x00x00b"
"x00x00x00xe7x00x00x01x00x03x00x04x00"
"x10x00xccx04x05x00x04x00x80xd0x05x00t"
"x00x02x00x02x00bx00<x00x04"
"FY04aWorkingtYearTotaltELEMENT-FtProduct-P"
"x10<entity>tx00x02x00"
…
37
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);
38
Example 2: EDS
 Essbase Deployment Services
 Middleware, no GUI interface
 Test scripts in Java from the QA group
 Solution - creation of LoadRunner scripts
from the test script
39
EDS Java Script
import lrapi.lr;
import com.essbase.api.base.*;
import com.essbase.api.session.*;
…
public class Actions{
public int init() {
return 0;
}//end of init
public int action() {
String s_userName = "system";
String s_password = "password";
40
EDS Java Script
lr.enable_redirection(true);
try {
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
Questions?
Alexander Podelko
alex.podelko@oracle.com
alexanderpodelko.com/blog
@apodelko
Links and references may be found in the paper
and at www.alexanderpodelko.com

Contenu connexe

Tendances

Performance testing using hp load runner
Performance testing using hp load runnerPerformance testing using hp load runner
Performance testing using hp load runnerReturn on Intelligence
 
Test Automation Framework Online Training by QuontraSolutions
Test Automation Framework Online Training by QuontraSolutionsTest Automation Framework Online Training by QuontraSolutions
Test Automation Framework Online Training by QuontraSolutionsQuontra Solutions
 
BDD with JBehave and Selenium
BDD with JBehave and SeleniumBDD with JBehave and Selenium
BDD with JBehave and SeleniumNikolay Vasilev
 
LoadRunner Performance Testing
LoadRunner Performance TestingLoadRunner Performance Testing
LoadRunner Performance TestingAtul Pant
 
Advanced Load Runner
Advanced Load RunnerAdvanced Load Runner
Advanced Load Runnertelab
 
Laws of test automation framework
Laws of test automation frameworkLaws of test automation framework
Laws of test automation frameworkvodqancr
 
Test Automation Framework Design | www.idexcel.com
Test Automation Framework Design | www.idexcel.comTest Automation Framework Design | www.idexcel.com
Test Automation Framework Design | www.idexcel.comIdexcel Technologies
 
Introduction to Performance Testing & Loadrunner
Introduction to Performance Testing & LoadrunnerIntroduction to Performance Testing & Loadrunner
Introduction to Performance Testing & LoadrunnerAisha Mazhar
 
Testing soa, web services and application development framework applications
Testing soa, web services and application development framework applicationsTesting soa, web services and application development framework applications
Testing soa, web services and application development framework applicationsInSync Conference
 
Test automation framework
Test automation frameworkTest automation framework
Test automation frameworkQACampus
 
Selenium Test Automation
Selenium Test AutomationSelenium Test Automation
Selenium Test AutomationBabuDevanandam
 
Centralized test automation framework implementation
Centralized test automation framework implementationCentralized test automation framework implementation
Centralized test automation framework implementationBharathi Krishnamurthi
 
Alm docs ontap
Alm docs ontapAlm docs ontap
Alm docs ontapAtish Modi
 
Test automation principles, terminologies and implementations
Test automation principles, terminologies and implementationsTest automation principles, terminologies and implementations
Test automation principles, terminologies and implementationsSteven Li
 
Test Automation Framework Development Introduction
Test Automation Framework Development IntroductionTest Automation Framework Development Introduction
Test Automation Framework Development IntroductionGanuka Yashantha
 

Tendances (20)

Performance testing using hp load runner
Performance testing using hp load runnerPerformance testing using hp load runner
Performance testing using hp load runner
 
QSpiders - Introduction to HP Load Runner
QSpiders - Introduction to HP Load RunnerQSpiders - Introduction to HP Load Runner
QSpiders - Introduction to HP Load Runner
 
Test Automation Framework Online Training by QuontraSolutions
Test Automation Framework Online Training by QuontraSolutionsTest Automation Framework Online Training by QuontraSolutions
Test Automation Framework Online Training by QuontraSolutions
 
QSpiders - Introduction to Performance Testing
QSpiders - Introduction to Performance TestingQSpiders - Introduction to Performance Testing
QSpiders - Introduction to Performance Testing
 
BDD with JBehave and Selenium
BDD with JBehave and SeleniumBDD with JBehave and Selenium
BDD with JBehave and Selenium
 
LoadRunner Performance Testing
LoadRunner Performance TestingLoadRunner Performance Testing
LoadRunner Performance Testing
 
HP ALM QC
HP ALM QCHP ALM QC
HP ALM QC
 
Advanced Load Runner
Advanced Load RunnerAdvanced Load Runner
Advanced Load Runner
 
Laws of test automation framework
Laws of test automation frameworkLaws of test automation framework
Laws of test automation framework
 
Qa process
Qa processQa process
Qa process
 
Test Automation Framework Design | www.idexcel.com
Test Automation Framework Design | www.idexcel.comTest Automation Framework Design | www.idexcel.com
Test Automation Framework Design | www.idexcel.com
 
Introduction to Performance Testing & Loadrunner
Introduction to Performance Testing & LoadrunnerIntroduction to Performance Testing & Loadrunner
Introduction to Performance Testing & Loadrunner
 
QSpiders - Simple Recording and Configuration of recording options for HP Loa...
QSpiders - Simple Recording and Configuration of recording options for HP Loa...QSpiders - Simple Recording and Configuration of recording options for HP Loa...
QSpiders - Simple Recording and Configuration of recording options for HP Loa...
 
Testing soa, web services and application development framework applications
Testing soa, web services and application development framework applicationsTesting soa, web services and application development framework applications
Testing soa, web services and application development framework applications
 
Test automation framework
Test automation frameworkTest automation framework
Test automation framework
 
Selenium Test Automation
Selenium Test AutomationSelenium Test Automation
Selenium Test Automation
 
Centralized test automation framework implementation
Centralized test automation framework implementationCentralized test automation framework implementation
Centralized test automation framework implementation
 
Alm docs ontap
Alm docs ontapAlm docs ontap
Alm docs ontap
 
Test automation principles, terminologies and implementations
Test automation principles, terminologies and implementationsTest automation principles, terminologies and implementations
Test automation principles, terminologies and implementations
 
Test Automation Framework Development Introduction
Test Automation Framework Development IntroductionTest Automation Framework Development Introduction
Test Automation Framework Development Introduction
 

En vedette

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
 
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
 
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 Assurance for Packaged Applications
Performance Assurance for Packaged ApplicationsPerformance Assurance for Packaged Applications
Performance Assurance for Packaged ApplicationsAlexander 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: See a Bigger Picture, ALM Forum, 2014
Load Testing: See a Bigger Picture, ALM Forum, 2014Load Testing: See a Bigger Picture, ALM Forum, 2014
Load Testing: See a Bigger Picture, ALM Forum, 2014Alexander 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
 
September_08 SQuAd Presentation
September_08 SQuAd PresentationSeptember_08 SQuAd Presentation
September_08 SQuAd Presentationiradari
 

En vedette (9)

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
 
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
 
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 Assurance for Packaged Applications
Performance Assurance for Packaged ApplicationsPerformance Assurance for Packaged Applications
Performance Assurance for Packaged Applications
 
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: See a Bigger Picture, ALM Forum, 2014
Load Testing: See a Bigger Picture, ALM Forum, 2014Load Testing: See a Bigger Picture, ALM Forum, 2014
Load Testing: See a Bigger Picture, ALM Forum, 2014
 
A Short History of Performance Engineering
A Short History of Performance EngineeringA Short History of Performance Engineering
A Short History of Performance Engineering
 
September_08 SQuAd Presentation
September_08 SQuAd PresentationSeptember_08 SQuAd Presentation
September_08 SQuAd Presentation
 

Similaire à Load Testing: See a Bigger Picture with Different Approaches

Микола Ковш “Performance Testing Implementation From Scratch. Why? When and H...
Микола Ковш “Performance Testing Implementation From Scratch. Why? When and H...Микола Ковш “Performance Testing Implementation From Scratch. Why? When and H...
Микола Ковш “Performance Testing Implementation From Scratch. Why? When and H...Dakiry
 
Performance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter introPerformance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter introMykola Kovsh
 
RahulAnand_Testing_5.9years_exp_CV
RahulAnand_Testing_5.9years_exp_CVRahulAnand_Testing_5.9years_exp_CV
RahulAnand_Testing_5.9years_exp_CVRahul Anand
 
B4usolution performance testing
B4usolution performance testingB4usolution performance testing
B4usolution performance testingHoa Le
 
Performance Testing
Performance TestingPerformance Testing
Performance TestingSelin Gungor
 
Performance testing with your eyes wide open geekweek 2018
Performance testing with your eyes wide open  geekweek 2018Performance testing with your eyes wide open  geekweek 2018
Performance testing with your eyes wide open geekweek 2018Yoav Weiss
 
Less11 3 e_loadmodule_1
Less11 3 e_loadmodule_1Less11 3 e_loadmodule_1
Less11 3 e_loadmodule_1Suresh Mishra
 
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
 
Performancetestingjmeter 121109061704-phpapp02
Performancetestingjmeter 121109061704-phpapp02Performancetestingjmeter 121109061704-phpapp02
Performancetestingjmeter 121109061704-phpapp02Shivakumara .
 
Performance testing in the cloud webinar jul 2018
Performance testing in the cloud webinar jul 2018Performance testing in the cloud webinar jul 2018
Performance testing in the cloud webinar jul 2018John Emmitt
 
Netserv Software Testing
Netserv Software TestingNetserv Software Testing
Netserv Software Testingsthicks14
 
Drupal 8 Lessons From the Field: Part 3 - The Drupal Backend
Drupal 8 Lessons From the Field: Part 3 - The Drupal BackendDrupal 8 Lessons From the Field: Part 3 - The Drupal Backend
Drupal 8 Lessons From the Field: Part 3 - The Drupal BackendAcquia
 
Getting Started with Apache Jmeter
Getting Started with Apache JmeterGetting Started with Apache Jmeter
Getting Started with Apache JmeterMindfire Solutions
 
Test Strategy For Future Cloud Architecture
Test Strategy For Future Cloud ArchitectureTest Strategy For Future Cloud Architecture
Test Strategy For Future Cloud ArchitectureMaheshShri1
 
Cloud-based performance testing
Cloud-based performance testingCloud-based performance testing
Cloud-based performance testingabhinavm
 
Browser-Based Load Testing with Grafana K6
Browser-Based Load Testing with Grafana K6Browser-Based Load Testing with Grafana K6
Browser-Based Load Testing with Grafana K6Knoldus Inc.
 
Best Practices In Load And Stress Testing Cmg Seminar[1]
Best Practices In Load And Stress Testing Cmg Seminar[1]Best Practices In Load And Stress Testing Cmg Seminar[1]
Best Practices In Load And Stress Testing Cmg Seminar[1]Munirathnam Naidu
 

Similaire à Load Testing: See a Bigger Picture with Different Approaches (20)

Микола Ковш “Performance Testing Implementation From Scratch. Why? When and H...
Микола Ковш “Performance Testing Implementation From Scratch. Why? When and H...Микола Ковш “Performance Testing Implementation From Scratch. Why? When and H...
Микола Ковш “Performance Testing Implementation From Scratch. Why? When and H...
 
Performance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter introPerformance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter intro
 
RahulAnand_Testing_5.9years_exp_CV
RahulAnand_Testing_5.9years_exp_CVRahulAnand_Testing_5.9years_exp_CV
RahulAnand_Testing_5.9years_exp_CV
 
B4usolution performance testing
B4usolution performance testingB4usolution performance testing
B4usolution performance testing
 
Performance Testing
Performance TestingPerformance Testing
Performance Testing
 
Performance testing with your eyes wide open geekweek 2018
Performance testing with your eyes wide open  geekweek 2018Performance testing with your eyes wide open  geekweek 2018
Performance testing with your eyes wide open geekweek 2018
 
Less11 3 e_loadmodule_1
Less11 3 e_loadmodule_1Less11 3 e_loadmodule_1
Less11 3 e_loadmodule_1
 
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
 
Performancetestingjmeter 121109061704-phpapp02
Performancetestingjmeter 121109061704-phpapp02Performancetestingjmeter 121109061704-phpapp02
Performancetestingjmeter 121109061704-phpapp02
 
Testing_with_TestComplete
Testing_with_TestCompleteTesting_with_TestComplete
Testing_with_TestComplete
 
Performance testing in the cloud webinar jul 2018
Performance testing in the cloud webinar jul 2018Performance testing in the cloud webinar jul 2018
Performance testing in the cloud webinar jul 2018
 
Netserv Software Testing
Netserv Software TestingNetserv Software Testing
Netserv Software Testing
 
Drupal 8 Lessons From the Field: Part 3 - The Drupal Backend
Drupal 8 Lessons From the Field: Part 3 - The Drupal BackendDrupal 8 Lessons From the Field: Part 3 - The Drupal Backend
Drupal 8 Lessons From the Field: Part 3 - The Drupal Backend
 
Getting Started with Apache Jmeter
Getting Started with Apache JmeterGetting Started with Apache Jmeter
Getting Started with Apache Jmeter
 
Test Strategy For Future Cloud Architecture
Test Strategy For Future Cloud ArchitectureTest Strategy For Future Cloud Architecture
Test Strategy For Future Cloud Architecture
 
Cloud-based performance testing
Cloud-based performance testingCloud-based performance testing
Cloud-based performance testing
 
Browser-Based Load Testing with Grafana K6
Browser-Based Load Testing with Grafana K6Browser-Based Load Testing with Grafana K6
Browser-Based Load Testing with Grafana K6
 
Best Practices In Load And Stress Testing Cmg Seminar[1]
Best Practices In Load And Stress Testing Cmg Seminar[1]Best Practices In Load And Stress Testing Cmg Seminar[1]
Best Practices In Load And Stress Testing Cmg Seminar[1]
 

Plus de Alexander Podelko

Continuous Performance Testing: Challenges and Approaches
Continuous Performance Testing: Challenges and ApproachesContinuous Performance Testing: Challenges and Approaches
Continuous Performance Testing: Challenges and ApproachesAlexander Podelko
 
Context-Driven Performance Testing
Context-Driven Performance TestingContext-Driven Performance Testing
Context-Driven Performance TestingAlexander Podelko
 
Multiple Dimensions of Load Testing
Multiple Dimensions of Load TestingMultiple Dimensions of Load Testing
Multiple Dimensions of Load TestingAlexander Podelko
 
Multiple Dimensions of Load Testing, CMG 2015 paper
Multiple Dimensions of Load Testing, CMG 2015 paperMultiple Dimensions of Load Testing, CMG 2015 paper
Multiple Dimensions of Load Testing, CMG 2015 paperAlexander Podelko
 
Reinventing Performance Testing, CMG imPACt 2016 slides
  Reinventing Performance Testing, CMG imPACt 2016 slides  Reinventing Performance Testing, CMG imPACt 2016 slides
Reinventing Performance Testing, CMG imPACt 2016 slidesAlexander Podelko
 
Reinventing Performance Testing. CMG imPACt 2016 paper
  Reinventing Performance Testing. CMG imPACt 2016 paper  Reinventing Performance Testing. CMG imPACt 2016 paper
Reinventing Performance Testing. CMG imPACt 2016 paperAlexander Podelko
 
Continuous Performance Testing: Myths and Realities
Continuous Performance Testing: Myths and RealitiesContinuous Performance Testing: Myths and Realities
Continuous Performance Testing: Myths and RealitiesAlexander Podelko
 
Agile Aspects of Performance Testing
Agile Aspects of Performance TestingAgile Aspects of Performance Testing
Agile Aspects of Performance TestingAlexander Podelko
 
Performance Requirements: CMG'11 slides with notes (pdf)
Performance Requirements: CMG'11 slides with notes (pdf)Performance Requirements: CMG'11 slides with notes (pdf)
Performance Requirements: CMG'11 slides with notes (pdf)Alexander Podelko
 

Plus de Alexander Podelko (9)

Continuous Performance Testing: Challenges and Approaches
Continuous Performance Testing: Challenges and ApproachesContinuous Performance Testing: Challenges and Approaches
Continuous Performance Testing: Challenges and Approaches
 
Context-Driven Performance Testing
Context-Driven Performance TestingContext-Driven Performance Testing
Context-Driven Performance Testing
 
Multiple Dimensions of Load Testing
Multiple Dimensions of Load TestingMultiple Dimensions of Load Testing
Multiple Dimensions of Load Testing
 
Multiple Dimensions of Load Testing, CMG 2015 paper
Multiple Dimensions of Load Testing, CMG 2015 paperMultiple Dimensions of Load Testing, CMG 2015 paper
Multiple Dimensions of Load Testing, CMG 2015 paper
 
Reinventing Performance Testing, CMG imPACt 2016 slides
  Reinventing Performance Testing, CMG imPACt 2016 slides  Reinventing Performance Testing, CMG imPACt 2016 slides
Reinventing Performance Testing, CMG imPACt 2016 slides
 
Reinventing Performance Testing. CMG imPACt 2016 paper
  Reinventing Performance Testing. CMG imPACt 2016 paper  Reinventing Performance Testing. CMG imPACt 2016 paper
Reinventing Performance Testing. CMG imPACt 2016 paper
 
Continuous Performance Testing: Myths and Realities
Continuous Performance Testing: Myths and RealitiesContinuous Performance Testing: Myths and Realities
Continuous Performance Testing: Myths and Realities
 
Agile Aspects of Performance Testing
Agile Aspects of Performance TestingAgile Aspects of Performance Testing
Agile Aspects of Performance Testing
 
Performance Requirements: CMG'11 slides with notes (pdf)
Performance Requirements: CMG'11 slides with notes (pdf)Performance Requirements: CMG'11 slides with notes (pdf)
Performance Requirements: CMG'11 slides with notes (pdf)
 

Dernier

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
🐬 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
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 

Dernier (20)

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 

Load Testing: See a Bigger Picture with Different Approaches

  • 1. 1 Load Testing: See a Bigger Picture Alexander Podelko alex.podelko@oracle.com www.alexanderpodelko.com @apodelko February 28, 2013
  • 2. 2 About Me  Specialize in performance last 16 years  Currently performance testing and optimization of Hyperion products at Oracle  Blog at http://alexanderpodelko.com/blog, have a collection of performance-related links at http://alexanderpodelko.com, on Twitter as @apodelko  Involved in CMG http://cmg.org, a volunteer organization of performance and capacity planning professionals – Conference November 4-8, 2013 in La Jolla, CA 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. 3 Agenda  Load testing and its role in performance risk mitigation  Different approaches: load generation  Different approaches: environments  Load testing tools
  • 4. 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. 5 The Stereotype  Load / Performance Testing 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. 6 The Stereotype  Load / Performance Testing 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 – …
  • 7. 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
  • 8. 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 – Resources Allocation  Continuous Integration / Deployment – Ability to deploy and remove changes quickly
  • 9. 9 But all of them don’t replace load testing Load testing complements them an several important ways
  • 10. 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
  • 11. 11 Agenda  Load testing and its role in performance risk mitigation  Different approaches: load generation  Different approaches: environments  Load testing tools
  • 12. 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
  • 13. 13 Load Generation  Create tests assets – run test  A must step in load testing  ‘Tests assets’ - usually scripts or programs in load testing  Time constraints can make it very challenging – Different for each product / interface
  • 14. 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
  • 15. 15 Record and Playback: Protocol Level Load Testing Tool Virtual Users ServerLoad Generator Application Network
  • 16. 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
  • 17. 17 Recalling Challenges  199x – SMB (Server Message Block), DCOM, Java RMI  200x – Applets and ActiveX controls  201x – Rich Internet Applications It was just a short period of time when Web sites were simple – it was rather an exception
  • 18. 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
  • 20. 20 Working Script web_custom_request("XMLDataGrid.asp_7","URL={URL}/ Data/XMLDataGrid.asp?Action=EXECUTE&TaskID=1024 &RowStart=1&ColStart=2&RowEnd=1&ColEnd=2&SelTy pe=0&Format=JavaScript", LAST); do { sleep(3000); web_reg_find("Text=1","SaveCount=abc_count",LAST); web_custom_request("XMLDataGrid.asp_8","URL={UR L}/Data/XMLDataGrid.asp?Action=GETCONSOLSTATU S", LAST); } while (strcmp(lr_eval_string("{abc_count}"),"1")==0);
  • 21. 21 Alternatives  Manual  Record and Playback, UI-Level  Programming  Mixed
  • 22. 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
  • 23. 23 Record and Playback: UI Level  Functional / regression testing tools  Record and playback communication between user and client GUI  Don't care about communication protocols / internals  Accurate data (real client, end-to-end)
  • 24. 24 History of the Approach  Traditional tools, fat clients – Require a separate machine (or at least 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
  • 25. 25 Record and Playback: UI Level Load Testing Tool Virtual Users ServerLoad Generator Application Network Brow sers
  • 26. 26 Challenges  Scalability – Still require more resources  Supported technologies  Timing accuracy  Playback accuracy – For example, for HtmlUnit
  • 27. 27 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
  • 28. 28 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
  • 29. 29 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
  • 30. 30 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 – Supporting languages – API calls (may require external dll / client stubs)
  • 31. 31 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
  • 32. 32 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
  • 33. 33 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
  • 34. 34 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
  • 35. 35 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");
  • 36. 36 Winsock Script send buf22 26165 "xffx00xf0a" "x00x00x00x00x01x00x00x00x01x00x03x00" "dx00bx00" "y'<Handle1>x00" "brx00x06x00fx00x1bex00x00rx00xd6aRN" "x1ax00x06x00x00x00x00x00x00x00x00x00b" "x00x00x00xe7x00x00x01x00x03x00x04x00" "x10x00xccx04x05x00x04x00x80xd0x05x00t" "x00x02x00x02x00bx00<x00x04" "FY04aWorkingtYearTotaltELEMENT-FtProduct-P" "x10<entity>tx00x02x00" …
  • 37. 37 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);
  • 38. 38 Example 2: EDS  Essbase Deployment Services  Middleware, no GUI interface  Test scripts in Java from the QA group  Solution - creation of LoadRunner scripts from the test script
  • 39. 39 EDS Java Script import lrapi.lr; import com.essbase.api.base.*; import com.essbase.api.session.*; … public class Actions{ public int init() { return 0; }//end of init public int action() { String s_userName = "system"; String s_password = "password";
  • 40. 40 EDS Java Script lr.enable_redirection(true); try { 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. 41 Agenda  Load testing and its role in performance risk mitigation  Different approaches: load generation  Different approaches: environments  Load testing tools
  • 42. 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. 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. 44 Agenda  Load testing and its role in performance risk mitigation  Different approaches: load generation  Different approaches: environments  Load testing tools
  • 45. 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. 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. 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. 48 Questions? Alexander Podelko alex.podelko@oracle.com alexanderpodelko.com/blog @apodelko Links and references may be found in the paper and at www.alexanderpodelko.com