SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Coding Serbia.
Systematic Load Testing
of Web Applications.
Jürg Stuker. CEO. Partner.
October 9, 2015
Namics.Oct. 9, 2015 2 Coding Serbia. Systematic Load Testing of Web Applications.
Performance Tuning 1%
Load Test Basics (Client View) 25%
My Experience 20%
Questions & Answers 15%
Tool Demo 39%
% Daily Value*
Nutrition Facts
Serving Size about 45 Minutes
No significant source of Business Blah Blah.
* Percent Daily Values are based on a tech diet.
Namics.
Please shoot!
 The sum of the expertise of the people in the audience is
greater than the sum of expertise of the people on stage,
so please…
#WebLoadTest
@jstuker
Oct. 9, 2015 3 Coding Serbia. Systematic Load Testing of Web Applications.
Why, When and Where?
Oct. 9, 2015 4 Coding Serbia. Systematic Load Testing of Web Applications.
Namics.
Why should I test?
 Load capacity and performance
 How many users can the application serve (in parallel)?
 How long does it take to deliver pages?
 How much bandwith does the system use?
 Stability
 Over time  Memory leaks & overflows
 Under load  Concurrency & deadlocks
 Fittness of Infrastructure
 Reproduction of problems in order to fix them
Why, When and Where?
Oct. 9, 2015 5 Coding Serbia. Systematic Load Testing of Web Applications.
Namics.
When to think about testing?
Why, When and Where?
Oct. 9, 2015 6 Coding Serbia. Systematic Load Testing of Web Applications.
Requirements
Proof of
Concept Development Going Live Operations
Specification needs
• Concurrent Users
• User Stories
• Reponse Time
Test of
Frameworks
Test of overall
Application
Integration /
Deployment
At each
Release / Fix
Namics.
Where to test?
Why, When and Where?
Oct. 9, 2015 7 Coding Serbia. Systematic Load Testing of Web Applications.
 Client
 Traffic Shaper / Firewall
 LoadBalancer
 Reverse Proxy
 Webserver
 Frontend Server
 Application Code
 Backend Server
 Application Code
 Data Persistance
 Application Code
1. Do not test the
environment first
2. Treat application
as a black box
3. When there is an issue
• Look into black box
• Change point of
measurement
Oct. 9, 2015 8 Coding Serbia. Systematic Load Testing of Web Applications.
Tools
Namics.
Very many… – what we use regularly (1/2)
 ApacheBench
 Hammer on application
 http://httpd.apache.org/docs/2.2/programs/ab.html
 Apache JMeter
 Loadtest workhorse, weak usability
 http://jmeter.apache.org/
 Gatling
 Loadtest modern, easy to integrate
 http://gatling.io/
 Dynatrace
 Application monitoring, white box, very powerful
 http://www.dynatrace.com/
Tools
Oct. 9, 2015 9 Coding Serbia. Systematic Load Testing of Web Applications.
Namics.
Very many… – what we use regularly (2/2)
 Proxy Sniffer
 http://www.proxy-sniffer.com/ or
https://www.apicasystem.com/load-testing/tools/
 Originally built in Switzerland by David Fischer,
now owned by Apica Systems
 Free Version (20 virtual users, duration 10 minutes)
 Browser based, just needs > Java 1.5 (runs on Unix-like,
Mac and Windows)
 Verrrrrry flexible (scriptable, cloud and small footprint)
 Nice documentation and reporting
Tools
Oct. 9, 2015 10 Coding Serbia. Systematic Load Testing of Web Applications.
Namics.
Components of Proxy Sniffer Application
 Just two files: prxsniff.jar and prxsniff.key
Tools
Oct. 9, 2015 11 Coding Serbia. Systematic Load Testing of Web Applications.
port 7990
WebAdmin / GUI
port 7993
Exec Agent
port 7999
HTTP Proxy
recording
execution
Namics.
Sequence of a Test with Proxy Sniffer
Tools
Oct. 9, 2015 12 Coding Serbia. Systematic Load Testing of Web Applications.
record scenario
validate recording
(clean it up)
generate test
(java code)
compile test
(class file)
execute
interpret
tweak (one thing
at the time)
Oct. 9, 2015 13 Coding Serbia. Systematic Load Testing of Web Applications.
Let‘s do some work
Namics.
A word of caution
Load testing generates load ;-)
Let‘s do some work...
Oct. 9, 2015 14 Coding Serbia. Systematic Load Testing of Web Applications.
Namics.
Live Demo or Recording ;)
 https://youtu.be/0Akj5qw8_So
Let‘s do some work...
Oct. 9, 2015 15 Coding Serbia. Systematic Load Testing of Web Applications.
Oct. 9, 2015 16 Coding Serbia. Systematic Load Testing of Web Applications.
Interpreting the Outcome
Namics.
Linear Water Channel
 More water == more througput
 Pass through time is (close to) constant
Interpreting the Outcome
Oct. 9, 2015 17 Coding Serbia. Systematic Load Testing of Web Applications.
Throughput: Liters per minute
Pass through time
Namics.
Unlimited Linear Model
Interpreting the Outcome
Oct. 9, 2015 18 Coding Serbia. Systematic Load Testing of Web Applications.
Water per minute
Throughput:
Liters per minute
Water per minute
Pass through time
Namics.
Limited Water Channel
Interpreting the Outcome
Oct. 9, 2015 19 Coding Serbia. Systematic Load Testing of Web Applications.
Throughput: Liters per minute
Pass through time
narrowing
Namics.
Limited Linear Model
Interpreting the Outcome
Oct. 9, 2015 20 Coding Serbia. Systematic Load Testing of Web Applications.
Water per minute
Throughput:
Liters per minute
Water per minute
Pass through time
maximim capacity reached,
after that jam (saturation)
Namics.
Non Linear System
Interpreting the Outcome
Oct. 9, 2015 21 Coding Serbia. Systematic Load Testing of Web Applications.
Water per minute
Throughput:
Liters per minute
Pass through time
maximum capacity reached,
after that jam (saturation)
system collaps
system blocked
Water per minute
∞
pressure brake(?)
Namics.
Example of test results (1 of 4)
Interpreting the Outcome
Oct. 9, 2015 22 Coding Serbia. Systematic Load Testing of Web Applications.
Namics.
Example of test results (2 of 4)
Interpreting the Outcome
Oct. 9, 2015 23 Coding Serbia. Systematic Load Testing of Web Applications.
85Mb / second
Namics.
Example of test results (3 of 4)
Interpreting the Outcome
Oct. 9, 2015 24 Coding Serbia. Systematic Load Testing of Web Applications.
concurrency problem
Namics.
Example of test results (4 of 4)
Interpreting the Outcome
Oct. 9, 2015 25 Coding Serbia. Systematic Load Testing of Web Applications.
swell
Namics.
Tipps for executing the test
 To find the correct scenario is really hard
 Look at historic logfiles / stats (plus safety margin)
 Ask domain experts
 Take the user stories (“follow the money”)
 What to go for
 Bandwith  Fetch one large item (again and again)
 # Transactions  Short test cycles with 5, 10, 20, 40... users to
find out where the systems levels (or decreases or crashes)
 Long runner  Execute a slow test during hours
 What’s nice to know too
 Start system under load
 Stop system under load
 Degradation (i.e. cluster node shutdown)
Interpreting to Outcome
Oct. 9, 2015 26 Coding Serbia. Systematic Load Testing of Web Applications.
Namics.
Watch out for
 Realistic scenario
 request mix
 think time
 read vs write (POST requests)
 caching
 Get 100% CPU of the tested system first
 Look at the database (slow queries)
 Look at the HTTP response content/headers of the test
 Did the system that executes the test deliver the load?
 Error logs
Interpreting to Outcome
Oct. 9, 2015 27 Coding Serbia. Systematic Load Testing of Web Applications.
Namics.
The usual suspects
 Network (Pipe, Router, Firewall) < 1%
 Load Balancer 5 %
 Reverse Proxy (Product) 5 %
 Reverse Proxy (Configuration) 10 %
 OS configuration (TCP/IP Stack) 5 %
 Application Framework 10 %
 Configuration of Application 20 %
 Programming/Code of Application 40 %
 Database 5%
Interpreting to Outcome
Oct. 9, 2015 28 Coding Serbia. Systematic Load Testing of Web Applications.
Oct. 9, 2015 29 Coding Serbia. Systematic Load Testing of Web Applications.
Wrap Up
Namics.
Summary
 Load testing MUST be part of every project plan
 Product owner must define what’s needed
 Do not test/optimize performance early in the dev cycle
 Test as close to the application as you can get
 and only when you find issues  change view
 Percentile statistics are OK (90% of requests fit)
 Scenarios are though to get
 Validate test results....
Wrap up
Oct. 9, 2015 30 Coding Serbia. Systematic Load Testing of Web Applications.
Namics.
Homework
 Read the HTTP Specification
 https://tools.ietf.org/html/rfc7230
Wrap up
Oct. 9, 2015 31 Coding Serbia. Systematic Load Testing of Web Applications.
Oct. 9, 2015 32 Coding Serbia. Systematic Load Testing of Web Applications.
About Namics
Namics.
Who is Namics?
About Namics
Oct. 9, 2015 33 Coding Serbia. Systematic Load Testing of Web Applications.
Focus
 High-end e-business services for
large, global customers
 Leading also in complex large-
scale projects
Stability
 Long-term customer relationships
and stable organisation
 Owned by a group of 29 employees
(Namics Partners)
 Company operating since 1995
Namics.
Namics figures in a Nutshell
About Namics
Oct. 9, 2015 34 Coding Serbia. Systematic Load Testing of Web Applications.
 Quality as growth engine
 Best of Swiss Web
agency in 2013 & 2014
(Best of Swiss Web
Association)
 Proven track record
 Stable relationship with
our key clients
 More than 70% of our
clients stay with us for
3+ years
2009 2010
55
50
45
40
35
30
25
20
10
Revenue (in Mio. CHF)
and number of employees
450
400
350
300
250
200
150
100
50
2011 2012 2013
60 500
2014
Namics.
Namics in Serbia
Highlights
 newest location in Europe
 cross country teams,
interdisciplinary
Belgrade in a nutshell
 start-up culture
 new 480m2 office
 collaboration
 Awesome since 1995.
Now in Serbia. Namics.
About Namics
Oct. 9, 2015 35 Coding Serbia. Systematic Load Testing of Web Applications.
Namics.
We are looking for new talent in Belgrade!
 http://namics.com/jobs
About Namics
Oct. 9, 2015 36 Coding Serbia. Systematic Load Testing of Web Applications.
Download-Link:
http://nam.to/webloadtest
jurg.stuker@namics.com
@jstuker

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Jonathon Wright - Intelligent Performance Cognitive Learning (AIOps)
Jonathon Wright - Intelligent Performance Cognitive Learning (AIOps)Jonathon Wright - Intelligent Performance Cognitive Learning (AIOps)
Jonathon Wright - Intelligent Performance Cognitive Learning (AIOps)
 
Continuous Load Testing with CloudTest and Jenkins
Continuous Load Testing with CloudTest and JenkinsContinuous Load Testing with CloudTest and Jenkins
Continuous Load Testing with CloudTest and Jenkins
 
Docker/DevOps Meetup: Metrics-Driven Continuous Performance and Scalabilty
Docker/DevOps Meetup: Metrics-Driven Continuous Performance and ScalabiltyDocker/DevOps Meetup: Metrics-Driven Continuous Performance and Scalabilty
Docker/DevOps Meetup: Metrics-Driven Continuous Performance and Scalabilty
 
OOP 2016 - Building Software That Eats The World
OOP 2016 - Building Software That Eats The WorldOOP 2016 - Building Software That Eats The World
OOP 2016 - Building Software That Eats The World
 
Continuous Delivery Testing @HiQ
Continuous Delivery Testing @HiQContinuous Delivery Testing @HiQ
Continuous Delivery Testing @HiQ
 
Hugs instead of Bugs: Dreaming of Quality Tools for Devs and Testers
Hugs instead of Bugs: Dreaming of Quality Tools for Devs and TestersHugs instead of Bugs: Dreaming of Quality Tools for Devs and Testers
Hugs instead of Bugs: Dreaming of Quality Tools for Devs and Testers
 
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
 
HSPS 2015 - SharePoint Performance Santiy Checks
HSPS 2015 - SharePoint Performance Santiy ChecksHSPS 2015 - SharePoint Performance Santiy Checks
HSPS 2015 - SharePoint Performance Santiy Checks
 
Four Practices to Fix Your Top .NET Performance Problems
Four Practices to Fix Your Top .NET Performance ProblemsFour Practices to Fix Your Top .NET Performance Problems
Four Practices to Fix Your Top .NET Performance Problems
 
How to explain DevOps to your mom
How to explain DevOps to your momHow to explain DevOps to your mom
How to explain DevOps to your mom
 
Metrics-Driven Devops: Delivering High Quality Software Faster!
Metrics-Driven Devops: Delivering High Quality Software Faster! Metrics-Driven Devops: Delivering High Quality Software Faster!
Metrics-Driven Devops: Delivering High Quality Software Faster!
 
DevOps, CLI, APIs, Oh My! Security Gone Agile
DevOps, CLI, APIs, Oh My!  Security Gone AgileDevOps, CLI, APIs, Oh My!  Security Gone Agile
DevOps, CLI, APIs, Oh My! Security Gone Agile
 
Web and App Performance: Top Problems to avoid to keep you out of the News
Web and App Performance: Top Problems to avoid to keep you out of the NewsWeb and App Performance: Top Problems to avoid to keep you out of the News
Web and App Performance: Top Problems to avoid to keep you out of the News
 
(R)evolutionize APM
(R)evolutionize APM(R)evolutionize APM
(R)evolutionize APM
 
Application Quality Gates in Continuous Delivery: Deliver Better Software Fas...
Application Quality Gates in Continuous Delivery: Deliver Better Software Fas...Application Quality Gates in Continuous Delivery: Deliver Better Software Fas...
Application Quality Gates in Continuous Delivery: Deliver Better Software Fas...
 
Performance Testing for Mobile Apps & Sites using Apache JMeter
Performance Testing for Mobile Apps & Sites using Apache JMeterPerformance Testing for Mobile Apps & Sites using Apache JMeter
Performance Testing for Mobile Apps & Sites using Apache JMeter
 
Continuous Testing and New Tools for Automation - Presentation from StarWest ...
Continuous Testing and New Tools for Automation - Presentation from StarWest ...Continuous Testing and New Tools for Automation - Presentation from StarWest ...
Continuous Testing and New Tools for Automation - Presentation from StarWest ...
 
JavaOne - Performance Focused DevOps to Improve Cont Delivery
JavaOne - Performance Focused DevOps to Improve Cont DeliveryJavaOne - Performance Focused DevOps to Improve Cont Delivery
JavaOne - Performance Focused DevOps to Improve Cont Delivery
 
Yelp Tech Talks: Mobile Testing 1, 2, 3
Yelp Tech Talks: Mobile Testing 1, 2, 3Yelp Tech Talks: Mobile Testing 1, 2, 3
Yelp Tech Talks: Mobile Testing 1, 2, 3
 
Java Performance Mistakes
Java Performance MistakesJava Performance Mistakes
Java Performance Mistakes
 

Andere mochten auch

Andere mochten auch (12)

Namics erzählt von der digitalen Welt
Namics erzählt von der digitalen WeltNamics erzählt von der digitalen Welt
Namics erzählt von der digitalen Welt
 
Markenwert und Konversion - Widerspruch oder gute Freunde?
Markenwert und Konversion - Widerspruch oder gute Freunde?Markenwert und Konversion - Widerspruch oder gute Freunde?
Markenwert und Konversion - Widerspruch oder gute Freunde?
 
Kann Wachstum Sünde sein? Die digitale Welt.
Kann Wachstum Sünde sein? Die digitale Welt.Kann Wachstum Sünde sein? Die digitale Welt.
Kann Wachstum Sünde sein? Die digitale Welt.
 
Chancen der Digitalisierung und die Herausforderung der Fachkräfte
Chancen der Digitalisierung und die Herausforderung der FachkräfteChancen der Digitalisierung und die Herausforderung der Fachkräfte
Chancen der Digitalisierung und die Herausforderung der Fachkräfte
 
Knowledgemanagement durch Wikis und Blogs
Knowledgemanagement durch Wikis und BlogsKnowledgemanagement durch Wikis und Blogs
Knowledgemanagement durch Wikis und Blogs
 
id-ee Blog Session 3 - Identity
id-ee Blog Session 3 - Identityid-ee Blog Session 3 - Identity
id-ee Blog Session 3 - Identity
 
Newsletter: Leser binden, neue Leser gewinnen. Anregungen aus der Praxis
Newsletter: Leser binden, neue Leser gewinnen. Anregungen aus der PraxisNewsletter: Leser binden, neue Leser gewinnen. Anregungen aus der Praxis
Newsletter: Leser binden, neue Leser gewinnen. Anregungen aus der Praxis
 
Mastering the Buy-In Conversation on Content Marketing: The Essential Starter...
Mastering the Buy-In Conversation on Content Marketing: The Essential Starter...Mastering the Buy-In Conversation on Content Marketing: The Essential Starter...
Mastering the Buy-In Conversation on Content Marketing: The Essential Starter...
 
Corporate Blogs: Alternative für Marken in Zeiten mangelnder Reichweiten?
Corporate Blogs: Alternative für Marken in Zeiten mangelnder Reichweiten? Corporate Blogs: Alternative für Marken in Zeiten mangelnder Reichweiten?
Corporate Blogs: Alternative für Marken in Zeiten mangelnder Reichweiten?
 
Kundenservice im Zeitalter von Social Media
Kundenservice im Zeitalter von Social MediaKundenservice im Zeitalter von Social Media
Kundenservice im Zeitalter von Social Media
 
Entwicklung von Social-Web-Applikationen auf Facebook und anderen Plattformen...
Entwicklung von Social-Web-Applikationen auf Facebook und anderen Plattformen...Entwicklung von Social-Web-Applikationen auf Facebook und anderen Plattformen...
Entwicklung von Social-Web-Applikationen auf Facebook und anderen Plattformen...
 
Blogs sind tot - es lebe der Blog!
Blogs sind tot - es lebe der Blog!Blogs sind tot - es lebe der Blog!
Blogs sind tot - es lebe der Blog!
 

Ähnlich wie Systematic Load Testing of Web Applications

Cost effective web application testing
Cost effective web application testingCost effective web application testing
Cost effective web application testing
Harinath Pudipeddi
 
Journey To Excellence
Journey To ExcellenceJourney To Excellence
Journey To Excellence
Walter Mamed
 

Ähnlich wie Systematic Load Testing of Web Applications (20)

Start Up Austin 2017: Production Preview - How to Stop Bad Things From Happening
Start Up Austin 2017: Production Preview - How to Stop Bad Things From HappeningStart Up Austin 2017: Production Preview - How to Stop Bad Things From Happening
Start Up Austin 2017: Production Preview - How to Stop Bad Things From Happening
 
Operations: Production Readiness
Operations: Production ReadinessOperations: Production Readiness
Operations: Production Readiness
 
Nonfunctional Testing: Examine the Other Side of the Coin
Nonfunctional Testing: Examine the Other Side of the CoinNonfunctional Testing: Examine the Other Side of the Coin
Nonfunctional Testing: Examine the Other Side of the Coin
 
Performance Testing using LoadRunner
Performance Testing using LoadRunnerPerformance Testing using LoadRunner
Performance Testing using LoadRunner
 
Testing Applications—For the Cloud and in the Cloud
Testing Applications—For the Cloud and in the CloudTesting Applications—For the Cloud and in the Cloud
Testing Applications—For the Cloud and in the Cloud
 
What's Missing? Microservices Meetup at Cisco
What's Missing? Microservices Meetup at CiscoWhat's Missing? Microservices Meetup at Cisco
What's Missing? Microservices Meetup at Cisco
 
Starting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for OpsStarting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for Ops
 
Critical Preflight Checks for Your EPM Applications
Critical Preflight Checks for Your EPM ApplicationsCritical Preflight Checks for Your EPM Applications
Critical Preflight Checks for Your EPM Applications
 
Real World Problem Solving Using Application Performance Management 10
Real World Problem Solving Using Application Performance Management 10Real World Problem Solving Using Application Performance Management 10
Real World Problem Solving Using Application Performance Management 10
 
Operations: Production Readiness Review – How to stop bad things from Happening
Operations: Production Readiness Review – How to stop bad things from HappeningOperations: Production Readiness Review – How to stop bad things from Happening
Operations: Production Readiness Review – How to stop bad things from Happening
 
Automate across Platform, OS, Technologies with TaaS
Automate across Platform, OS, Technologies with TaaSAutomate across Platform, OS, Technologies with TaaS
Automate across Platform, OS, Technologies with TaaS
 
Exposing and Fixing Common App Performance Problems
Exposing and Fixing Common App Performance ProblemsExposing and Fixing Common App Performance Problems
Exposing and Fixing Common App Performance Problems
 
Experitest & Wipro Co-Webinar
Experitest & Wipro Co-Webinar Experitest & Wipro Co-Webinar
Experitest & Wipro Co-Webinar
 
Resume_QA
Resume_QAResume_QA
Resume_QA
 
Cost Effective Web Application Testing
Cost Effective Web Application TestingCost Effective Web Application Testing
Cost Effective Web Application Testing
 
Cost effective web application testing
Cost effective web application testingCost effective web application testing
Cost effective web application testing
 
Cost effective web application testing
Cost effective web application testingCost effective web application testing
Cost effective web application testing
 
Performance Analysis of Idle Programs
Performance Analysis of Idle ProgramsPerformance Analysis of Idle Programs
Performance Analysis of Idle Programs
 
Journey To Excellence
Journey To ExcellenceJourney To Excellence
Journey To Excellence
 
Service Virtualization: What Testers Need to Know
Service Virtualization: What Testers Need to KnowService Virtualization: What Testers Need to Know
Service Virtualization: What Testers Need to Know
 

Mehr von Jürg Stuker

Mehr von Jürg Stuker (20)

Innovation ist, wenn der Kreis sich schliesst
Innovation ist, wenn der Kreis sich schliesstInnovation ist, wenn der Kreis sich schliesst
Innovation ist, wenn der Kreis sich schliesst
 
Circularity Gap Report Switzerland 2023
Circularity Gap Report Switzerland 2023Circularity Gap Report Switzerland 2023
Circularity Gap Report Switzerland 2023
 
User Experience im Digital Banking
User Experience im Digital BankingUser Experience im Digital Banking
User Experience im Digital Banking
 
A framework to think about innovative patient care
A framework to think about innovative patient careA framework to think about innovative patient care
A framework to think about innovative patient care
 
Leadership und Kulturentwicklung -- CAS New Work
Leadership und Kulturentwicklung -- CAS New WorkLeadership und Kulturentwicklung -- CAS New Work
Leadership und Kulturentwicklung -- CAS New Work
 
ETA Teil 3: Internet Technologie
ETA Teil 3: Internet TechnologieETA Teil 3: Internet Technologie
ETA Teil 3: Internet Technologie
 
ETA Teil 2: Programmierung
ETA Teil 2: ProgrammierungETA Teil 2: Programmierung
ETA Teil 2: Programmierung
 
ETA Teil 1: Computational Thinking
ETA Teil 1: Computational ThinkingETA Teil 1: Computational Thinking
ETA Teil 1: Computational Thinking
 
New Work - Wie sehen moderne Arbeitsumgebungen aus?
New Work - Wie sehen moderne Arbeitsumgebungen aus?New Work - Wie sehen moderne Arbeitsumgebungen aus?
New Work - Wie sehen moderne Arbeitsumgebungen aus?
 
How to grow 50% in digital subscriptions
How to grow 50% in digital subscriptionsHow to grow 50% in digital subscriptions
How to grow 50% in digital subscriptions
 
Startup Weekend Ethiopia 2019
Startup Weekend Ethiopia 2019Startup Weekend Ethiopia 2019
Startup Weekend Ethiopia 2019
 
Programmieren kinderleicht gemacht: Einblicke in das spielerische und erlebni...
Programmieren kinderleicht gemacht: Einblicke in das spielerische und erlebni...Programmieren kinderleicht gemacht: Einblicke in das spielerische und erlebni...
Programmieren kinderleicht gemacht: Einblicke in das spielerische und erlebni...
 
Workshop Artificial Intelligence
Workshop Artificial IntelligenceWorkshop Artificial Intelligence
Workshop Artificial Intelligence
 
Kader lernen programmieren: Sinn oder Unsinn?
Kader lernen programmieren: Sinn oder Unsinn?Kader lernen programmieren: Sinn oder Unsinn?
Kader lernen programmieren: Sinn oder Unsinn?
 
Langfristige Erfolge im Performance Marketing
Langfristige Erfolge im Performance MarketingLangfristige Erfolge im Performance Marketing
Langfristige Erfolge im Performance Marketing
 
Drei Thesen zu "The Future of UI"
Drei Thesen zu "The Future of UI"Drei Thesen zu "The Future of UI"
Drei Thesen zu "The Future of UI"
 
Mystery Shopping bei 14 Banken
Mystery Shopping bei 14 BankenMystery Shopping bei 14 Banken
Mystery Shopping bei 14 Banken
 
How robotic and machine learning are changing the future jobs
How robotic and machine learning are changing the future jobsHow robotic and machine learning are changing the future jobs
How robotic and machine learning are changing the future jobs
 
MassChallenge Masterclass: Owned media how-to
MassChallenge Masterclass: Owned media how-toMassChallenge Masterclass: Owned media how-to
MassChallenge Masterclass: Owned media how-to
 
Digital Banking: Simplicity and User Experience
Digital Banking: Simplicity and User ExperienceDigital Banking: Simplicity and User Experience
Digital Banking: Simplicity and User Experience
 

Kürzlich hochgeladen

1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
QucHHunhnh
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
QucHHunhnh
 

Kürzlich hochgeladen (20)

Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docx
 
Food Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-II
Food Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-IIFood Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-II
Food Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-II
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701
 

Systematic Load Testing of Web Applications

  • 1. Coding Serbia. Systematic Load Testing of Web Applications. Jürg Stuker. CEO. Partner. October 9, 2015
  • 2. Namics.Oct. 9, 2015 2 Coding Serbia. Systematic Load Testing of Web Applications. Performance Tuning 1% Load Test Basics (Client View) 25% My Experience 20% Questions & Answers 15% Tool Demo 39% % Daily Value* Nutrition Facts Serving Size about 45 Minutes No significant source of Business Blah Blah. * Percent Daily Values are based on a tech diet.
  • 3. Namics. Please shoot!  The sum of the expertise of the people in the audience is greater than the sum of expertise of the people on stage, so please… #WebLoadTest @jstuker Oct. 9, 2015 3 Coding Serbia. Systematic Load Testing of Web Applications.
  • 4. Why, When and Where? Oct. 9, 2015 4 Coding Serbia. Systematic Load Testing of Web Applications.
  • 5. Namics. Why should I test?  Load capacity and performance  How many users can the application serve (in parallel)?  How long does it take to deliver pages?  How much bandwith does the system use?  Stability  Over time  Memory leaks & overflows  Under load  Concurrency & deadlocks  Fittness of Infrastructure  Reproduction of problems in order to fix them Why, When and Where? Oct. 9, 2015 5 Coding Serbia. Systematic Load Testing of Web Applications.
  • 6. Namics. When to think about testing? Why, When and Where? Oct. 9, 2015 6 Coding Serbia. Systematic Load Testing of Web Applications. Requirements Proof of Concept Development Going Live Operations Specification needs • Concurrent Users • User Stories • Reponse Time Test of Frameworks Test of overall Application Integration / Deployment At each Release / Fix
  • 7. Namics. Where to test? Why, When and Where? Oct. 9, 2015 7 Coding Serbia. Systematic Load Testing of Web Applications.  Client  Traffic Shaper / Firewall  LoadBalancer  Reverse Proxy  Webserver  Frontend Server  Application Code  Backend Server  Application Code  Data Persistance  Application Code 1. Do not test the environment first 2. Treat application as a black box 3. When there is an issue • Look into black box • Change point of measurement
  • 8. Oct. 9, 2015 8 Coding Serbia. Systematic Load Testing of Web Applications. Tools
  • 9. Namics. Very many… – what we use regularly (1/2)  ApacheBench  Hammer on application  http://httpd.apache.org/docs/2.2/programs/ab.html  Apache JMeter  Loadtest workhorse, weak usability  http://jmeter.apache.org/  Gatling  Loadtest modern, easy to integrate  http://gatling.io/  Dynatrace  Application monitoring, white box, very powerful  http://www.dynatrace.com/ Tools Oct. 9, 2015 9 Coding Serbia. Systematic Load Testing of Web Applications.
  • 10. Namics. Very many… – what we use regularly (2/2)  Proxy Sniffer  http://www.proxy-sniffer.com/ or https://www.apicasystem.com/load-testing/tools/  Originally built in Switzerland by David Fischer, now owned by Apica Systems  Free Version (20 virtual users, duration 10 minutes)  Browser based, just needs > Java 1.5 (runs on Unix-like, Mac and Windows)  Verrrrrry flexible (scriptable, cloud and small footprint)  Nice documentation and reporting Tools Oct. 9, 2015 10 Coding Serbia. Systematic Load Testing of Web Applications.
  • 11. Namics. Components of Proxy Sniffer Application  Just two files: prxsniff.jar and prxsniff.key Tools Oct. 9, 2015 11 Coding Serbia. Systematic Load Testing of Web Applications. port 7990 WebAdmin / GUI port 7993 Exec Agent port 7999 HTTP Proxy recording execution
  • 12. Namics. Sequence of a Test with Proxy Sniffer Tools Oct. 9, 2015 12 Coding Serbia. Systematic Load Testing of Web Applications. record scenario validate recording (clean it up) generate test (java code) compile test (class file) execute interpret tweak (one thing at the time)
  • 13. Oct. 9, 2015 13 Coding Serbia. Systematic Load Testing of Web Applications. Let‘s do some work
  • 14. Namics. A word of caution Load testing generates load ;-) Let‘s do some work... Oct. 9, 2015 14 Coding Serbia. Systematic Load Testing of Web Applications.
  • 15. Namics. Live Demo or Recording ;)  https://youtu.be/0Akj5qw8_So Let‘s do some work... Oct. 9, 2015 15 Coding Serbia. Systematic Load Testing of Web Applications.
  • 16. Oct. 9, 2015 16 Coding Serbia. Systematic Load Testing of Web Applications. Interpreting the Outcome
  • 17. Namics. Linear Water Channel  More water == more througput  Pass through time is (close to) constant Interpreting the Outcome Oct. 9, 2015 17 Coding Serbia. Systematic Load Testing of Web Applications. Throughput: Liters per minute Pass through time
  • 18. Namics. Unlimited Linear Model Interpreting the Outcome Oct. 9, 2015 18 Coding Serbia. Systematic Load Testing of Web Applications. Water per minute Throughput: Liters per minute Water per minute Pass through time
  • 19. Namics. Limited Water Channel Interpreting the Outcome Oct. 9, 2015 19 Coding Serbia. Systematic Load Testing of Web Applications. Throughput: Liters per minute Pass through time narrowing
  • 20. Namics. Limited Linear Model Interpreting the Outcome Oct. 9, 2015 20 Coding Serbia. Systematic Load Testing of Web Applications. Water per minute Throughput: Liters per minute Water per minute Pass through time maximim capacity reached, after that jam (saturation)
  • 21. Namics. Non Linear System Interpreting the Outcome Oct. 9, 2015 21 Coding Serbia. Systematic Load Testing of Web Applications. Water per minute Throughput: Liters per minute Pass through time maximum capacity reached, after that jam (saturation) system collaps system blocked Water per minute ∞ pressure brake(?)
  • 22. Namics. Example of test results (1 of 4) Interpreting the Outcome Oct. 9, 2015 22 Coding Serbia. Systematic Load Testing of Web Applications.
  • 23. Namics. Example of test results (2 of 4) Interpreting the Outcome Oct. 9, 2015 23 Coding Serbia. Systematic Load Testing of Web Applications. 85Mb / second
  • 24. Namics. Example of test results (3 of 4) Interpreting the Outcome Oct. 9, 2015 24 Coding Serbia. Systematic Load Testing of Web Applications. concurrency problem
  • 25. Namics. Example of test results (4 of 4) Interpreting the Outcome Oct. 9, 2015 25 Coding Serbia. Systematic Load Testing of Web Applications. swell
  • 26. Namics. Tipps for executing the test  To find the correct scenario is really hard  Look at historic logfiles / stats (plus safety margin)  Ask domain experts  Take the user stories (“follow the money”)  What to go for  Bandwith  Fetch one large item (again and again)  # Transactions  Short test cycles with 5, 10, 20, 40... users to find out where the systems levels (or decreases or crashes)  Long runner  Execute a slow test during hours  What’s nice to know too  Start system under load  Stop system under load  Degradation (i.e. cluster node shutdown) Interpreting to Outcome Oct. 9, 2015 26 Coding Serbia. Systematic Load Testing of Web Applications.
  • 27. Namics. Watch out for  Realistic scenario  request mix  think time  read vs write (POST requests)  caching  Get 100% CPU of the tested system first  Look at the database (slow queries)  Look at the HTTP response content/headers of the test  Did the system that executes the test deliver the load?  Error logs Interpreting to Outcome Oct. 9, 2015 27 Coding Serbia. Systematic Load Testing of Web Applications.
  • 28. Namics. The usual suspects  Network (Pipe, Router, Firewall) < 1%  Load Balancer 5 %  Reverse Proxy (Product) 5 %  Reverse Proxy (Configuration) 10 %  OS configuration (TCP/IP Stack) 5 %  Application Framework 10 %  Configuration of Application 20 %  Programming/Code of Application 40 %  Database 5% Interpreting to Outcome Oct. 9, 2015 28 Coding Serbia. Systematic Load Testing of Web Applications.
  • 29. Oct. 9, 2015 29 Coding Serbia. Systematic Load Testing of Web Applications. Wrap Up
  • 30. Namics. Summary  Load testing MUST be part of every project plan  Product owner must define what’s needed  Do not test/optimize performance early in the dev cycle  Test as close to the application as you can get  and only when you find issues  change view  Percentile statistics are OK (90% of requests fit)  Scenarios are though to get  Validate test results.... Wrap up Oct. 9, 2015 30 Coding Serbia. Systematic Load Testing of Web Applications.
  • 31. Namics. Homework  Read the HTTP Specification  https://tools.ietf.org/html/rfc7230 Wrap up Oct. 9, 2015 31 Coding Serbia. Systematic Load Testing of Web Applications.
  • 32. Oct. 9, 2015 32 Coding Serbia. Systematic Load Testing of Web Applications. About Namics
  • 33. Namics. Who is Namics? About Namics Oct. 9, 2015 33 Coding Serbia. Systematic Load Testing of Web Applications. Focus  High-end e-business services for large, global customers  Leading also in complex large- scale projects Stability  Long-term customer relationships and stable organisation  Owned by a group of 29 employees (Namics Partners)  Company operating since 1995
  • 34. Namics. Namics figures in a Nutshell About Namics Oct. 9, 2015 34 Coding Serbia. Systematic Load Testing of Web Applications.  Quality as growth engine  Best of Swiss Web agency in 2013 & 2014 (Best of Swiss Web Association)  Proven track record  Stable relationship with our key clients  More than 70% of our clients stay with us for 3+ years 2009 2010 55 50 45 40 35 30 25 20 10 Revenue (in Mio. CHF) and number of employees 450 400 350 300 250 200 150 100 50 2011 2012 2013 60 500 2014
  • 35. Namics. Namics in Serbia Highlights  newest location in Europe  cross country teams, interdisciplinary Belgrade in a nutshell  start-up culture  new 480m2 office  collaboration  Awesome since 1995. Now in Serbia. Namics. About Namics Oct. 9, 2015 35 Coding Serbia. Systematic Load Testing of Web Applications.
  • 36. Namics. We are looking for new talent in Belgrade!  http://namics.com/jobs About Namics Oct. 9, 2015 36 Coding Serbia. Systematic Load Testing of Web Applications.