SlideShare a Scribd company logo
Stress Your Web App Before It
Stresses You: Tools and Techniques
for Extreme Web Testing
Vinicius Senger                             Felipe Leme
Architect and Instructor                    Architect
Globalcode                                  Matera Systems
http://www.globalcode.com.br                http://matera.com

TS-9235

                       2007 JavaOneSM Conference | Session TS-9235 |
Quote


             “The designer is concerned with what
             happens when 1 user presses a button
               and the architect is concerned with
               what happens when 10,000 users
                       press a button.”



Sun Certified Enterprise Architect for J2EE Technology Study Guide. Page 6.
Mark Cade, Simon Roberts.
                                                    2007 JavaOneSM Conference | Session TS-9235 |   2
Reality Check
●   Architect designs for 10,000 users
●   Developer programs for 1 user
●   Murphy crashes it on 100 users

●   Stress testing to the rescue!




                      2007 JavaOneSM Conference | Session TS-9235 |   3
Goal of This Talk




Understand different methods, techniques and
tools to plan, model, and execute stress tests.




                  2007 JavaOneSM Conference | Session TS-9235 |   4
Agenda

Introduction
Fundamentals of Stress Testing
Tools
Tips
Conclusion
Q&A



                2007 JavaOneSM Conference | Session TS-9235 |   5
Agenda

Introduction
Fundamentals of Stress Testing
Tools
Tips
Conclusion
Q&A



                2007 JavaOneSM Conference | Session TS-9235 |   6
Testing Ecosystem
Different tests, different objectives

                                            Test Generation



                Requirement Based                                                Code Based



    Non-Functional                  Functional                                  Coverage Based



                     Performance



                      Scalability


                                2007 JavaOneSM Conference | Session TS-9235 |     7
Non-Functional Requirements
Different needs, different tests…
   Can my application handle
    5K simultaneous users?                                ●     Simultaneous users
   Which architecture should                             ●     Continuous usage
    we use?
                                                          ●     Hardware sizing
   My server crashes everyday…
                                                          ●     Capacity planning
   Will our server survive the
    next 2 years?                                         ●     Architecture decisions
   Will application work after 4                         ●     Stress-test driven development
    months of continuous usage?                           ●     Continuous performance
   What server should we buy?                            ●     Find a bottleneck/diagnose
   We need to afford 20K user                                  performance problem




                                  2007 JavaOneSM Conference | Session TS-9235 |   8
What Is the X
of the Question?



       2007 JavaOneSM Conference | Session TS-9235 |   9
Demand Simulation
X is the number of users…
●   Can my application handle 5K
    simultaneous users?
●   With a given test configuration (data center
    environment) and Java™ Platform, Enterprise
    Edition (Java™ EE platform) Web App, how
    many users can it afford?


    app.war +                                   =                      X
                      2007 JavaOneSM Conference | Session TS-9235 |   10
Architecture Decision
     X is the technical architecture…
      ●   Given functional and non-functional requirements,
          which architecture should we use?
      ●   Should we cluster Web + Enterprise JavaBeans™
          (EJB™) technology container together?
                                                                                       JMS API
                                                                                   JavaServer™
                                                                                   Faces     AJAX


                                                                                             X
                                                                                           Hibernate
                                     + 5K users =                                 WebService
                                                                                    Aspect Patterns
                                                                                    EJB      Swing
                                                                                    Architecture
JMS = Java Message Service                                                              JCA
JCA = J2EE™ Connector Architecture
                                        2007 JavaOneSM Conference | Session TS-9235 |   11
Hardware Sizing and
Capacity Planning
X is the hardware (and network)…
●   Given the application and non-functional
    requirements, how much hardware do we need?




    app.war     + 5K users =                                               X
                      2007 JavaOneSM Conference | Session TS-9235 |   12
Diagnose Performance Problems
X is the problem
 ●   When a big problem happens and you see
     someone smiling, probably they already found
     a someone to blame!

                   Java™ DataBase                      EJB Specification Pool?
                   Connectivity (JDBC™)
                                                                  JDBC software Pool?



               + app.war =
                                                            Dead-lock?        Memory?
5K users                                                              O.S.?   AJAX?
                                      SQL code? Framework? Network?
                                     Murphy’s Law?                    Garbage collector?


                      2007 JavaOneSM Conference | Session TS-9235 |     13
Agenda

Introduction
Fundamentals of Stress Testing
Tools
Tips
Conclusion
Q&A



               2007 JavaOneSM Conference | Session TS-9235 |   14
Definition
Functional vs. non-functional requirement testing
●   Functional testing is concerned, most of the
    time, on single-thread and single-user testing
●   Stress-testing is concerned on multi-thread
    /multi-user testing
●   Repetition, concurrency, magnitude, and
    random variation are parts of a stress-test




                       2007 JavaOneSM Conference | Session TS-9235 |   15
Stress-Testing Phases
Main activities
●   Planning
●   Modelling and designing
●   Construction and instrumentation
●   Execution
●   Data analyses




                     2007 JavaOneSM Conference | Session TS-9235 |   16
Planning a Stress-Test
Scenarios
●   Stress-test can have different scenarios:
    ●   Credit card companies have different demands
        during the year
    ●   E-commerce demand changes during promotions
    ●   Financial market is susceptible to external factors
        (wars, elections, rumors)
●   Different scenarios, different load factor
●   The more you plan, the more you cover!



                          2007 JavaOneSM Conference | Session TS-9235 |   17
Modelling a Stress-Test
Defining operational profiles

                      User profile/role
Operation             Standard Investor                       Manager         Corporate
                        (20%)        (20%)                     (10%)           (50%)
Withdraw                 20%                  5%                                25%
Deposit                  15%                 15%                                25%
Transfer                 15%                 15%                                30%
Account report           50%                 20%                  20%           20%
Create an account                                                 20%
Inactive an account                                               30%
Make investments                             45%                  30%



                         2007 JavaOneSM Conference | Session TS-9235 |   18
Modelling a Stress-Test
Refining input space
●   How do we better represent all possible
    user inputs?
●   Login can be a string:
    ●   Minimum size is 4
    ●   Maximum size is 10
    ●   Only numbers and letters allowed
●   Test input space for username:
    ●   Ana, A1
    ●   Ana1, James, JonhLennon, JonhLennon12


                         2007 JavaOneSM Conference | Session TS-9235 |   19
Construction
Creating test scripts based on operational profiles
                      User profile / role
Operation
                       Standard Investor      Manager   Corporate
                        (20%)         (20%)    (10%)     (50%)
Withdraw                 20%         5%                   25%
Deposit                  15%        15%                   25%
Transfer                 15%        15%                   30%
Account report           50%        20%        20%        20%
Create an account                              20%
Inactive an account                            30%
Make investments                    45%        30%




                                                                    2007 JavaOneSM Conference | Session TS-9235 |   20
Agenda

Introduction
Fundamentals of Stress Testing
Tools
Tips
Conclusion
Q&A



                2007 JavaOneSM Conference | Session TS-9235 |   21
Apache JMeter
●   “De facto” tool for stress testing
    ●   Wide adoption
    ●   Open source (ASL 2.0)
    ●   100% Java technology Desktop Application
    ●   Very mature (current release: 2.2)
●   Originally intended for testing web
    (HTTP requests)
●   Flexible design: Supports JMS technology, POP3,
    TCP, JUnit, SOAP, FTP, LDAP, JDBC software,
    and many other requests

                        2007 JavaOneSM Conference | Session TS-9235 |   22
Essential Elements
●   Test plan: JMeter “project”
●   Workbench: temporary items
●   Thread group: represents demand
●   Samplers: protocol-specific requests
●   Listeners: handle results
●   Minimum usage:
    ●   Thread Group (X simultaneous users)
    ●   A request
    ●   One or more listener

                        2007 JavaOneSM Conference | Session TS-9235 |   23
DEMO
Stressed Hello World




                   2007 JavaOneSM Conference | Session TS-9235 |   24
Other Elements
●   Configuration elements: global configurations
●   Processors: transform request/response data
●   Assertions: test validity of responses
●   Timers: modify the tempo between requests
●   Logic controllers: groups elements according
    to logical conditions
●   HTTP Proxy Server: add elements by
    mimicking real usage


                     2007 JavaOneSM Conference | Session TS-9235 |   25
DEMO
JavaServer Faces Study Case




                   2007 JavaOneSM Conference | Session TS-9235 |   26
Complementary Tools
      When JMeter is not enough…
      ●    OS monitoring tools
             ●   vmstat, iostat, dtrace
      ●    Java Virtual Machine (JVM™) monitoring
             ●   Java Management Extensions (JMX™)
                 technology console
      ●    Profiler Integration
      ●    Build integration
             ●   Apache Ant tasks
             ●   JChav

The terms “Java Virtual Machine” and “JVM” mean a Virtual Machine for the Java™ platform.
                                                   2007 JavaOneSM Conference | Session TS-9235 |   27
Agenda

Introduction
Fundamentals of Stress Testing
Tools
Tips
Conclusion
Q&A



                2007 JavaOneSM Conference | Session TS-9235 |   28
Planning Tips
●   Avoid stress testing only most used scenario
●   Special attention to user definition, when
    talking about simultaneous users stress-testing
●   Usage of real input data space instead of
    synthetic data (whenever possible)




                     2007 JavaOneSM Conference | Session TS-9235 |   29
Planning Tips
Stress-test environment
●   Documentation is paramount:
    ●   OS version and patches
    ●   JVM software
    ●   Database/connection pool
    ●   Full hardware description
    ●   Techniques for monitoring
    ●   Input space
    ●   Definition of user profiles




                          2007 JavaOneSM Conference | Session TS-9235 |   30
JMeter Tips
●   Automatize whatever you can:
    ●   Variables
    ●   Regular expressions
    ●   Processors
    ●   HTTP Request Default
●   Remember: HTTP is stateless
    ●   Cookies and Session ID
    ●   JavaServer Faces state
    ●   Solution: HTTP Cookie Manager


                        2007 JavaOneSM Conference | Session TS-9235 |   31
JMeter Tips
●   Beware the interference rule:
    ●   Instrumentation consumes resources
    ●   Test configuration must mirror real world
         ●   Servers, network, OS, load
●   JMeter proxy is your friend
    ●   Powerful and handy tool
    ●   Ajax requests
    ●   Session-based workflow
    ●   JavaServer Faces requests


                              2007 JavaOneSM Conference | Session TS-9235 |   32
Agenda

Introduction
Fundamentals of Stress Testing
Tools
Tips
Conclusion
Q&A



                2007 JavaOneSM Conference | Session TS-9235 |   33
Summary
●   Stress testing is a must
    ●   …Not a might or a should
●   It is not hard to implement
    ●   …Plenty of free tools available
●   Plan earlier, test always
    ●   …Do not wait until it is too late!




                           2007 JavaOneSM Conference | Session TS-9235 |   34
For More Information
●   JChav: http://jchav.blogspot.com/
●   2005 BOF: http://globalcode.com.br/j1-2005.pdf
●   TS-9646: Performance-Tune Your
    Ajax Application




                     2007 JavaOneSM Conference | Session TS-9235 |   35
Agenda

Introduction
Fundamentals of Stress Testing
Tools
Tips
Conclusion
Q&A



                2007 JavaOneSM Conference | Session TS-9235 |   36
Q&A
Vinicius Senger—vinicius@globalcode.com.br
Felipe Leme—felipeal@gmail.com




                     2007 JavaOneSM Conference | Session TS-9235 |   37
Stress Your Web App Before It
Stresses You: Tools and Techniques
for Extreme Web Testing
Vinicius Senger                             Felipe Leme
Architect and Instructor                    Architect
Globalcode                                  Matera Systems
http://www.globalcode.com.br                http://matera.com

TS-9235

                       2007 JavaOneSM Conference | Session TS-9235 |

More Related Content

What's hot

Comparing Flex, Grails, GWT, Seam, Struts 2 and Wicket
Comparing Flex, Grails, GWT, Seam, Struts 2 and WicketComparing Flex, Grails, GWT, Seam, Struts 2 and Wicket
Comparing Flex, Grails, GWT, Seam, Struts 2 and Wicket
Matt Raible
 
Java Store & Java Warehouse Overview
Java Store & Java Warehouse OverviewJava Store & Java Warehouse Overview
Java Store & Java Warehouse Overview
Stephen Chin
 
Imaginea Service Sheet - Performance Engineering
Imaginea Service Sheet - Performance EngineeringImaginea Service Sheet - Performance Engineering
Imaginea Service Sheet - Performance Engineering
Imaginea
 
Java CAPS
Java CAPSJava CAPS
Java CAPS
Jaime Contreras
 
The Java EE 7 Platform: Developing for the Cloud (FISL 12)
The Java EE 7 Platform: Developing for the Cloud  (FISL 12)The Java EE 7 Platform: Developing for the Cloud  (FISL 12)
The Java EE 7 Platform: Developing for the Cloud (FISL 12)
Arun Gupta
 
BenchmarkQA Performance Testing Quality Forum March 2012
BenchmarkQA Performance Testing Quality Forum March 2012BenchmarkQA Performance Testing Quality Forum March 2012
BenchmarkQA Performance Testing Quality Forum March 2012
BenchmarkQA
 
VMware vSphere 4.0: The best platform for business applications
VMware vSphere 4.0: The best platform for business applicationsVMware vSphere 4.0: The best platform for business applications
VMware vSphere 4.0: The best platform for business applications
Vincent Kwon
 
Rational
RationalRational
Rational
IBM
 
6 rpt oracle_plugin-anitha_krishnamurthy
6 rpt oracle_plugin-anitha_krishnamurthy6 rpt oracle_plugin-anitha_krishnamurthy
6 rpt oracle_plugin-anitha_krishnamurthy
IBM
 
Requirements Management Office - Strata
Requirements Management Office - Strata Requirements Management Office - Strata
Requirements Management Office - Strata
IIBA UK Chapter
 
Tips for Migrating to XI 3.1
Tips for Migrating to XI 3.1Tips for Migrating to XI 3.1
Tips for Migrating to XI 3.1
Terry Smith
 
Aspects of Modern APM Solutions
Aspects of Modern APM SolutionsAspects of Modern APM Solutions
Aspects of Modern APM Solutions
nlwebperf
 
IBM Impact Session 2351 hybrid apps
IBM Impact Session 2351 hybrid appsIBM Impact Session 2351 hybrid apps
IBM Impact Session 2351 hybrid apps
nick_garrod
 
Savy training 01.11.2012
Savy training 01.11.2012Savy training 01.11.2012
Savy training 01.11.2012
Dr.Savita Yadav
 
S109 cics-java
S109 cics-javaS109 cics-java
S109 cics-java
nick_garrod
 
Cyret Brochure
Cyret BrochureCyret Brochure
Cyret Brochure
karthik_hariharan
 
Modern Apps and App Lifecycle
Modern Apps and App LifecycleModern Apps and App Lifecycle
Modern Apps and App Lifecycle
Marc Hoppers
 
Web Performance Acceleration with Strangeloop AS1000
Web Performance Acceleration with Strangeloop AS1000Web Performance Acceleration with Strangeloop AS1000
Web Performance Acceleration with Strangeloop AS1000
Thomas Stensitzki
 
PSI Corporate Profile
PSI Corporate ProfilePSI Corporate Profile
PSI Corporate Profile
mike_vincent
 

What's hot (19)

Comparing Flex, Grails, GWT, Seam, Struts 2 and Wicket
Comparing Flex, Grails, GWT, Seam, Struts 2 and WicketComparing Flex, Grails, GWT, Seam, Struts 2 and Wicket
Comparing Flex, Grails, GWT, Seam, Struts 2 and Wicket
 
Java Store & Java Warehouse Overview
Java Store & Java Warehouse OverviewJava Store & Java Warehouse Overview
Java Store & Java Warehouse Overview
 
Imaginea Service Sheet - Performance Engineering
Imaginea Service Sheet - Performance EngineeringImaginea Service Sheet - Performance Engineering
Imaginea Service Sheet - Performance Engineering
 
Java CAPS
Java CAPSJava CAPS
Java CAPS
 
The Java EE 7 Platform: Developing for the Cloud (FISL 12)
The Java EE 7 Platform: Developing for the Cloud  (FISL 12)The Java EE 7 Platform: Developing for the Cloud  (FISL 12)
The Java EE 7 Platform: Developing for the Cloud (FISL 12)
 
BenchmarkQA Performance Testing Quality Forum March 2012
BenchmarkQA Performance Testing Quality Forum March 2012BenchmarkQA Performance Testing Quality Forum March 2012
BenchmarkQA Performance Testing Quality Forum March 2012
 
VMware vSphere 4.0: The best platform for business applications
VMware vSphere 4.0: The best platform for business applicationsVMware vSphere 4.0: The best platform for business applications
VMware vSphere 4.0: The best platform for business applications
 
Rational
RationalRational
Rational
 
6 rpt oracle_plugin-anitha_krishnamurthy
6 rpt oracle_plugin-anitha_krishnamurthy6 rpt oracle_plugin-anitha_krishnamurthy
6 rpt oracle_plugin-anitha_krishnamurthy
 
Requirements Management Office - Strata
Requirements Management Office - Strata Requirements Management Office - Strata
Requirements Management Office - Strata
 
Tips for Migrating to XI 3.1
Tips for Migrating to XI 3.1Tips for Migrating to XI 3.1
Tips for Migrating to XI 3.1
 
Aspects of Modern APM Solutions
Aspects of Modern APM SolutionsAspects of Modern APM Solutions
Aspects of Modern APM Solutions
 
IBM Impact Session 2351 hybrid apps
IBM Impact Session 2351 hybrid appsIBM Impact Session 2351 hybrid apps
IBM Impact Session 2351 hybrid apps
 
Savy training 01.11.2012
Savy training 01.11.2012Savy training 01.11.2012
Savy training 01.11.2012
 
S109 cics-java
S109 cics-javaS109 cics-java
S109 cics-java
 
Cyret Brochure
Cyret BrochureCyret Brochure
Cyret Brochure
 
Modern Apps and App Lifecycle
Modern Apps and App LifecycleModern Apps and App Lifecycle
Modern Apps and App Lifecycle
 
Web Performance Acceleration with Strangeloop AS1000
Web Performance Acceleration with Strangeloop AS1000Web Performance Acceleration with Strangeloop AS1000
Web Performance Acceleration with Strangeloop AS1000
 
PSI Corporate Profile
PSI Corporate ProfilePSI Corporate Profile
PSI Corporate Profile
 

Similar to Stress Your Web App Before It Stresses You: Tools and Techniques for Extreme Web Testing

LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn
 
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
Nick Dellamaggiore
 
How to Deliver Maximum Citrix Performance and User Satisfaction
How to Deliver Maximum Citrix Performance and User SatisfactionHow to Deliver Maximum Citrix Performance and User Satisfaction
How to Deliver Maximum Citrix Performance and User Satisfaction
eG Innovations
 
SPEC INDIA Java Case Study
SPEC INDIA Java Case StudySPEC INDIA Java Case Study
SPEC INDIA Java Case Study
SPEC INDIA
 
eG Citrix Performance Management & Analytics IBM Webinar 040815
eG Citrix Performance Management & Analytics   IBM Webinar 040815eG Citrix Performance Management & Analytics   IBM Webinar 040815
eG Citrix Performance Management & Analytics IBM Webinar 040815
eG Innovations
 
10 reasons why Nuxeo is using GlassFish
10 reasons why Nuxeo is using GlassFish10 reasons why Nuxeo is using GlassFish
10 reasons why Nuxeo is using GlassFish
Nuxeo
 
eG Enterprise Citrix XenDesktop Monitor Product Tour
eG Enterprise Citrix XenDesktop Monitor Product ToureG Enterprise Citrix XenDesktop Monitor Product Tour
eG Enterprise Citrix XenDesktop Monitor Product Tour
eG Innovations
 
Internship softwaretraining@ijse
Internship softwaretraining@ijseInternship softwaretraining@ijse
Internship softwaretraining@ijse
Jinadi Rashmika
 
Egl Rui Ajax World
Egl Rui Ajax WorldEgl Rui Ajax World
Egl Rui Ajax World
rajivmordani
 
Web 2.0 Development with IBM DB2
Web 2.0 Development with IBM DB2Web 2.0 Development with IBM DB2
Web 2.0 Development with IBM DB2
Vladimir Bacvanski, PhD
 
Revolutionizing the Data Abstraction Layer with IBM Optim pureQuery and DB2
Revolutionizing the Data Abstraction Layer with IBM Optim pureQuery and DB2Revolutionizing the Data Abstraction Layer with IBM Optim pureQuery and DB2
Revolutionizing the Data Abstraction Layer with IBM Optim pureQuery and DB2
Vladimir Bacvanski, PhD
 
Enterprise Mashups With Soa
Enterprise Mashups With SoaEnterprise Mashups With Soa
Enterprise Mashups With Soa
umityalcinalp
 
Virtualizing a Virtual Machine
Virtualizing a Virtual MachineVirtualizing a Virtual Machine
Virtualizing a Virtual Machine
elliando dias
 
Impact2014 session # 1523 performance optimization using ibm java on z and w...
Impact2014  session # 1523 performance optimization using ibm java on z and w...Impact2014  session # 1523 performance optimization using ibm java on z and w...
Impact2014 session # 1523 performance optimization using ibm java on z and w...
Elena Nanos
 
Oracle JET overview
Oracle JET overviewOracle JET overview
Oracle JET overview
Steven Davelaar
 
Citrix XenApp and XenDesktop Performance Management Made Easy
Citrix XenApp and XenDesktop Performance Management Made EasyCitrix XenApp and XenDesktop Performance Management Made Easy
Citrix XenApp and XenDesktop Performance Management Made Easy
eG Innovations
 
Prem _Developer (1)
Prem _Developer (1)Prem _Developer (1)
Prem _Developer (1)
Prem Anand T
 
App Mod 01: Moving existing apps to the cloud
App Mod 01: Moving existing apps to the cloudApp Mod 01: Moving existing apps to the cloud
App Mod 01: Moving existing apps to the cloud
Judy Breedlove
 
resume-rob-schneider
resume-rob-schneiderresume-rob-schneider
resume-rob-schneider
Robert Schneider
 
BSM201.pdf
BSM201.pdfBSM201.pdf
BSM201.pdf
Novell
 

Similar to Stress Your Web App Before It Stresses You: Tools and Techniques for Extreme Web Testing (20)

LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
 
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
 
How to Deliver Maximum Citrix Performance and User Satisfaction
How to Deliver Maximum Citrix Performance and User SatisfactionHow to Deliver Maximum Citrix Performance and User Satisfaction
How to Deliver Maximum Citrix Performance and User Satisfaction
 
SPEC INDIA Java Case Study
SPEC INDIA Java Case StudySPEC INDIA Java Case Study
SPEC INDIA Java Case Study
 
eG Citrix Performance Management & Analytics IBM Webinar 040815
eG Citrix Performance Management & Analytics   IBM Webinar 040815eG Citrix Performance Management & Analytics   IBM Webinar 040815
eG Citrix Performance Management & Analytics IBM Webinar 040815
 
10 reasons why Nuxeo is using GlassFish
10 reasons why Nuxeo is using GlassFish10 reasons why Nuxeo is using GlassFish
10 reasons why Nuxeo is using GlassFish
 
eG Enterprise Citrix XenDesktop Monitor Product Tour
eG Enterprise Citrix XenDesktop Monitor Product ToureG Enterprise Citrix XenDesktop Monitor Product Tour
eG Enterprise Citrix XenDesktop Monitor Product Tour
 
Internship softwaretraining@ijse
Internship softwaretraining@ijseInternship softwaretraining@ijse
Internship softwaretraining@ijse
 
Egl Rui Ajax World
Egl Rui Ajax WorldEgl Rui Ajax World
Egl Rui Ajax World
 
Web 2.0 Development with IBM DB2
Web 2.0 Development with IBM DB2Web 2.0 Development with IBM DB2
Web 2.0 Development with IBM DB2
 
Revolutionizing the Data Abstraction Layer with IBM Optim pureQuery and DB2
Revolutionizing the Data Abstraction Layer with IBM Optim pureQuery and DB2Revolutionizing the Data Abstraction Layer with IBM Optim pureQuery and DB2
Revolutionizing the Data Abstraction Layer with IBM Optim pureQuery and DB2
 
Enterprise Mashups With Soa
Enterprise Mashups With SoaEnterprise Mashups With Soa
Enterprise Mashups With Soa
 
Virtualizing a Virtual Machine
Virtualizing a Virtual MachineVirtualizing a Virtual Machine
Virtualizing a Virtual Machine
 
Impact2014 session # 1523 performance optimization using ibm java on z and w...
Impact2014  session # 1523 performance optimization using ibm java on z and w...Impact2014  session # 1523 performance optimization using ibm java on z and w...
Impact2014 session # 1523 performance optimization using ibm java on z and w...
 
Oracle JET overview
Oracle JET overviewOracle JET overview
Oracle JET overview
 
Citrix XenApp and XenDesktop Performance Management Made Easy
Citrix XenApp and XenDesktop Performance Management Made EasyCitrix XenApp and XenDesktop Performance Management Made Easy
Citrix XenApp and XenDesktop Performance Management Made Easy
 
Prem _Developer (1)
Prem _Developer (1)Prem _Developer (1)
Prem _Developer (1)
 
App Mod 01: Moving existing apps to the cloud
App Mod 01: Moving existing apps to the cloudApp Mod 01: Moving existing apps to the cloud
App Mod 01: Moving existing apps to the cloud
 
resume-rob-schneider
resume-rob-schneiderresume-rob-schneider
resume-rob-schneider
 
BSM201.pdf
BSM201.pdfBSM201.pdf
BSM201.pdf
 

More from elliando dias

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
elliando dias
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
elliando dias
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
elliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
elliando dias
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
elliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
elliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
elliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
elliando dias
 
Ragel talk
Ragel talkRagel talk
Ragel talk
elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
elliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
elliando dias
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
elliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
elliando dias
 
Rango
RangoRango
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
elliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
elliando dias
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
elliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
elliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
elliando dias
 

More from elliando dias (20)

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 

Recently uploaded

Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Tatiana Kojar
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
alexjohnson7307
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
Hiike
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
Data Hops
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
Edge AI and Vision Alliance
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
SAP S/4 HANA sourcing and procurement to Public cloud
SAP S/4 HANA sourcing and procurement to Public cloudSAP S/4 HANA sourcing and procurement to Public cloud
SAP S/4 HANA sourcing and procurement to Public cloud
maazsz111
 
Public CyberSecurity Awareness Presentation 2024.pptx
Public CyberSecurity Awareness Presentation 2024.pptxPublic CyberSecurity Awareness Presentation 2024.pptx
Public CyberSecurity Awareness Presentation 2024.pptx
marufrahmanstratejm
 

Recently uploaded (20)

Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
SAP S/4 HANA sourcing and procurement to Public cloud
SAP S/4 HANA sourcing and procurement to Public cloudSAP S/4 HANA sourcing and procurement to Public cloud
SAP S/4 HANA sourcing and procurement to Public cloud
 
Public CyberSecurity Awareness Presentation 2024.pptx
Public CyberSecurity Awareness Presentation 2024.pptxPublic CyberSecurity Awareness Presentation 2024.pptx
Public CyberSecurity Awareness Presentation 2024.pptx
 

Stress Your Web App Before It Stresses You: Tools and Techniques for Extreme Web Testing

  • 1. Stress Your Web App Before It Stresses You: Tools and Techniques for Extreme Web Testing Vinicius Senger Felipe Leme Architect and Instructor Architect Globalcode Matera Systems http://www.globalcode.com.br http://matera.com TS-9235 2007 JavaOneSM Conference | Session TS-9235 |
  • 2. Quote “The designer is concerned with what happens when 1 user presses a button and the architect is concerned with what happens when 10,000 users press a button.” Sun Certified Enterprise Architect for J2EE Technology Study Guide. Page 6. Mark Cade, Simon Roberts. 2007 JavaOneSM Conference | Session TS-9235 | 2
  • 3. Reality Check ● Architect designs for 10,000 users ● Developer programs for 1 user ● Murphy crashes it on 100 users ● Stress testing to the rescue! 2007 JavaOneSM Conference | Session TS-9235 | 3
  • 4. Goal of This Talk Understand different methods, techniques and tools to plan, model, and execute stress tests. 2007 JavaOneSM Conference | Session TS-9235 | 4
  • 5. Agenda Introduction Fundamentals of Stress Testing Tools Tips Conclusion Q&A 2007 JavaOneSM Conference | Session TS-9235 | 5
  • 6. Agenda Introduction Fundamentals of Stress Testing Tools Tips Conclusion Q&A 2007 JavaOneSM Conference | Session TS-9235 | 6
  • 7. Testing Ecosystem Different tests, different objectives Test Generation Requirement Based Code Based Non-Functional Functional Coverage Based Performance Scalability 2007 JavaOneSM Conference | Session TS-9235 | 7
  • 8. Non-Functional Requirements Different needs, different tests…  Can my application handle 5K simultaneous users? ● Simultaneous users  Which architecture should ● Continuous usage we use? ● Hardware sizing  My server crashes everyday… ● Capacity planning  Will our server survive the next 2 years? ● Architecture decisions  Will application work after 4 ● Stress-test driven development months of continuous usage? ● Continuous performance  What server should we buy? ● Find a bottleneck/diagnose  We need to afford 20K user performance problem 2007 JavaOneSM Conference | Session TS-9235 | 8
  • 9. What Is the X of the Question? 2007 JavaOneSM Conference | Session TS-9235 | 9
  • 10. Demand Simulation X is the number of users… ● Can my application handle 5K simultaneous users? ● With a given test configuration (data center environment) and Java™ Platform, Enterprise Edition (Java™ EE platform) Web App, how many users can it afford? app.war + = X 2007 JavaOneSM Conference | Session TS-9235 | 10
  • 11. Architecture Decision X is the technical architecture… ● Given functional and non-functional requirements, which architecture should we use? ● Should we cluster Web + Enterprise JavaBeans™ (EJB™) technology container together? JMS API JavaServer™ Faces AJAX X Hibernate + 5K users = WebService Aspect Patterns EJB Swing Architecture JMS = Java Message Service JCA JCA = J2EE™ Connector Architecture 2007 JavaOneSM Conference | Session TS-9235 | 11
  • 12. Hardware Sizing and Capacity Planning X is the hardware (and network)… ● Given the application and non-functional requirements, how much hardware do we need? app.war + 5K users = X 2007 JavaOneSM Conference | Session TS-9235 | 12
  • 13. Diagnose Performance Problems X is the problem ● When a big problem happens and you see someone smiling, probably they already found a someone to blame! Java™ DataBase EJB Specification Pool? Connectivity (JDBC™) JDBC software Pool? + app.war = Dead-lock? Memory? 5K users O.S.? AJAX? SQL code? Framework? Network? Murphy’s Law? Garbage collector? 2007 JavaOneSM Conference | Session TS-9235 | 13
  • 14. Agenda Introduction Fundamentals of Stress Testing Tools Tips Conclusion Q&A 2007 JavaOneSM Conference | Session TS-9235 | 14
  • 15. Definition Functional vs. non-functional requirement testing ● Functional testing is concerned, most of the time, on single-thread and single-user testing ● Stress-testing is concerned on multi-thread /multi-user testing ● Repetition, concurrency, magnitude, and random variation are parts of a stress-test 2007 JavaOneSM Conference | Session TS-9235 | 15
  • 16. Stress-Testing Phases Main activities ● Planning ● Modelling and designing ● Construction and instrumentation ● Execution ● Data analyses 2007 JavaOneSM Conference | Session TS-9235 | 16
  • 17. Planning a Stress-Test Scenarios ● Stress-test can have different scenarios: ● Credit card companies have different demands during the year ● E-commerce demand changes during promotions ● Financial market is susceptible to external factors (wars, elections, rumors) ● Different scenarios, different load factor ● The more you plan, the more you cover! 2007 JavaOneSM Conference | Session TS-9235 | 17
  • 18. Modelling a Stress-Test Defining operational profiles User profile/role Operation Standard Investor Manager Corporate (20%) (20%) (10%) (50%) Withdraw 20% 5% 25% Deposit 15% 15% 25% Transfer 15% 15% 30% Account report 50% 20% 20% 20% Create an account 20% Inactive an account 30% Make investments 45% 30% 2007 JavaOneSM Conference | Session TS-9235 | 18
  • 19. Modelling a Stress-Test Refining input space ● How do we better represent all possible user inputs? ● Login can be a string: ● Minimum size is 4 ● Maximum size is 10 ● Only numbers and letters allowed ● Test input space for username: ● Ana, A1 ● Ana1, James, JonhLennon, JonhLennon12 2007 JavaOneSM Conference | Session TS-9235 | 19
  • 20. Construction Creating test scripts based on operational profiles User profile / role Operation Standard Investor Manager Corporate (20%) (20%) (10%) (50%) Withdraw 20% 5% 25% Deposit 15% 15% 25% Transfer 15% 15% 30% Account report 50% 20% 20% 20% Create an account 20% Inactive an account 30% Make investments 45% 30% 2007 JavaOneSM Conference | Session TS-9235 | 20
  • 21. Agenda Introduction Fundamentals of Stress Testing Tools Tips Conclusion Q&A 2007 JavaOneSM Conference | Session TS-9235 | 21
  • 22. Apache JMeter ● “De facto” tool for stress testing ● Wide adoption ● Open source (ASL 2.0) ● 100% Java technology Desktop Application ● Very mature (current release: 2.2) ● Originally intended for testing web (HTTP requests) ● Flexible design: Supports JMS technology, POP3, TCP, JUnit, SOAP, FTP, LDAP, JDBC software, and many other requests 2007 JavaOneSM Conference | Session TS-9235 | 22
  • 23. Essential Elements ● Test plan: JMeter “project” ● Workbench: temporary items ● Thread group: represents demand ● Samplers: protocol-specific requests ● Listeners: handle results ● Minimum usage: ● Thread Group (X simultaneous users) ● A request ● One or more listener 2007 JavaOneSM Conference | Session TS-9235 | 23
  • 24. DEMO Stressed Hello World 2007 JavaOneSM Conference | Session TS-9235 | 24
  • 25. Other Elements ● Configuration elements: global configurations ● Processors: transform request/response data ● Assertions: test validity of responses ● Timers: modify the tempo between requests ● Logic controllers: groups elements according to logical conditions ● HTTP Proxy Server: add elements by mimicking real usage 2007 JavaOneSM Conference | Session TS-9235 | 25
  • 26. DEMO JavaServer Faces Study Case 2007 JavaOneSM Conference | Session TS-9235 | 26
  • 27. Complementary Tools When JMeter is not enough… ● OS monitoring tools ● vmstat, iostat, dtrace ● Java Virtual Machine (JVM™) monitoring ● Java Management Extensions (JMX™) technology console ● Profiler Integration ● Build integration ● Apache Ant tasks ● JChav The terms “Java Virtual Machine” and “JVM” mean a Virtual Machine for the Java™ platform. 2007 JavaOneSM Conference | Session TS-9235 | 27
  • 28. Agenda Introduction Fundamentals of Stress Testing Tools Tips Conclusion Q&A 2007 JavaOneSM Conference | Session TS-9235 | 28
  • 29. Planning Tips ● Avoid stress testing only most used scenario ● Special attention to user definition, when talking about simultaneous users stress-testing ● Usage of real input data space instead of synthetic data (whenever possible) 2007 JavaOneSM Conference | Session TS-9235 | 29
  • 30. Planning Tips Stress-test environment ● Documentation is paramount: ● OS version and patches ● JVM software ● Database/connection pool ● Full hardware description ● Techniques for monitoring ● Input space ● Definition of user profiles 2007 JavaOneSM Conference | Session TS-9235 | 30
  • 31. JMeter Tips ● Automatize whatever you can: ● Variables ● Regular expressions ● Processors ● HTTP Request Default ● Remember: HTTP is stateless ● Cookies and Session ID ● JavaServer Faces state ● Solution: HTTP Cookie Manager 2007 JavaOneSM Conference | Session TS-9235 | 31
  • 32. JMeter Tips ● Beware the interference rule: ● Instrumentation consumes resources ● Test configuration must mirror real world ● Servers, network, OS, load ● JMeter proxy is your friend ● Powerful and handy tool ● Ajax requests ● Session-based workflow ● JavaServer Faces requests 2007 JavaOneSM Conference | Session TS-9235 | 32
  • 33. Agenda Introduction Fundamentals of Stress Testing Tools Tips Conclusion Q&A 2007 JavaOneSM Conference | Session TS-9235 | 33
  • 34. Summary ● Stress testing is a must ● …Not a might or a should ● It is not hard to implement ● …Plenty of free tools available ● Plan earlier, test always ● …Do not wait until it is too late! 2007 JavaOneSM Conference | Session TS-9235 | 34
  • 35. For More Information ● JChav: http://jchav.blogspot.com/ ● 2005 BOF: http://globalcode.com.br/j1-2005.pdf ● TS-9646: Performance-Tune Your Ajax Application 2007 JavaOneSM Conference | Session TS-9235 | 35
  • 36. Agenda Introduction Fundamentals of Stress Testing Tools Tips Conclusion Q&A 2007 JavaOneSM Conference | Session TS-9235 | 36
  • 38. Stress Your Web App Before It Stresses You: Tools and Techniques for Extreme Web Testing Vinicius Senger Felipe Leme Architect and Instructor Architect Globalcode Matera Systems http://www.globalcode.com.br http://matera.com TS-9235 2007 JavaOneSM Conference | Session TS-9235 |