SlideShare uma empresa Scribd logo
1 de 38
Baixar para ler offline
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 |

Mais conteúdo relacionado

Mais procurados

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 WicketMatt Raible
 
Java Store & Java Warehouse Overview
Java Store & Java Warehouse OverviewJava Store & Java Warehouse Overview
Java Store & Java Warehouse OverviewStephen Chin
 
Imaginea Service Sheet - Performance Engineering
Imaginea Service Sheet - Performance EngineeringImaginea Service Sheet - Performance Engineering
Imaginea Service Sheet - Performance EngineeringImaginea
 
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 2012BenchmarkQA
 
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 applicationsVincent Kwon
 
Rational
RationalRational
RationalIBM
 
6 rpt oracle_plugin-anitha_krishnamurthy
6 rpt oracle_plugin-anitha_krishnamurthy6 rpt oracle_plugin-anitha_krishnamurthy
6 rpt oracle_plugin-anitha_krishnamurthyIBM
 
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.1Terry Smith
 
Aspects of Modern APM Solutions
Aspects of Modern APM SolutionsAspects of Modern APM Solutions
Aspects of Modern APM Solutionsnlwebperf
 
IBM Impact Session 2351 hybrid apps
IBM Impact Session 2351 hybrid appsIBM Impact Session 2351 hybrid apps
IBM Impact Session 2351 hybrid appsnick_garrod
 
Savy training 01.11.2012
Savy training 01.11.2012Savy training 01.11.2012
Savy training 01.11.2012Dr.Savita Yadav
 
Modern Apps and App Lifecycle
Modern Apps and App LifecycleModern Apps and App Lifecycle
Modern Apps and App LifecycleMarc Hoppers
 
Web Performance Acceleration with Strangeloop AS1000
Web Performance Acceleration with Strangeloop AS1000Web Performance Acceleration with Strangeloop AS1000
Web Performance Acceleration with Strangeloop AS1000Thomas Stensitzki
 
PSI Corporate Profile
PSI Corporate ProfilePSI Corporate Profile
PSI Corporate Profilemike_vincent
 

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

Semelhante a 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 SatisfactioneG Innovations
 
SPEC INDIA Java Case Study
SPEC INDIA Java Case StudySPEC INDIA Java Case Study
SPEC INDIA Java Case StudySPEC 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 040815eG 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 GlassFishNuxeo
 
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 ToureG Innovations
 
Internship softwaretraining@ijse
Internship softwaretraining@ijseInternship softwaretraining@ijse
Internship softwaretraining@ijseJinadi Rashmika
 
Egl Rui Ajax World
Egl Rui Ajax WorldEgl Rui Ajax World
Egl Rui Ajax Worldrajivmordani
 
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 DB2Vladimir Bacvanski, PhD
 
Enterprise Mashups With Soa
Enterprise Mashups With SoaEnterprise Mashups With Soa
Enterprise Mashups With Soaumityalcinalp
 
Virtualizing a Virtual Machine
Virtualizing a Virtual MachineVirtualizing a Virtual Machine
Virtualizing a Virtual Machineelliando 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
 
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 EasyeG 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 cloudJudy Breedlove
 
BSM201.pdf
BSM201.pdfBSM201.pdf
BSM201.pdfNovell
 

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

Mais de elliando dias

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slideselliando 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 ClojureScriptelliando dias
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structureselliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de containerelliando 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 Agilityelliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Librarieselliando 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
 
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 Webelliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorceryelliando dias
 
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 Designelliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makeselliando 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 Facebookelliando 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 Studyelliando dias
 

Mais de 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
 

Último

Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 

Último (20)

Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 

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 |