SlideShare a Scribd company logo
Ajax Load Testing ConsiderationsLoad Testing Ajax Websites
Background	Eric Beland Co-Founder, Testomatixhttp://testomatix.comebeland@testomatix.comTwitter: @testomatix	Testomatix provides full service performance testing including expert planning, scripting, and test execution. We test for you, and help you tune.
Testing Ajax Websites
Will it Scale?What happens when people show up?
Testing at the HTTP Layer
Testing at the HTTP LayerAdvantage: Scalable - No browserSmall memory and CPU footprint  Tools:  HP LoadRunner, Jmeter, Grinder, Oracle e-LoadCreated by: Recording from within the browser—browser plugins or hooks.Intercepting requests with a proxy tool. May be hand-scripted.
Challenges At the HTTP layerThings that aren’t as smooth when simulating the browser…
Hard-Coded URLs
Hard-coded URLsIf a request is dependent on a previous Ajax request which, after a certain number of users starts failing, a real user would fail.  If you have a hard-coded the URL, your test will pass when it shouldn’t.If an Ajax request is vital to the user interaction,Content-checked (match against text in the HTML)Or defined as a RegExp source for navigation
Ajax Load Testing Concerns By Eric Beland
Recording Issues – Is it recording?Does your tool record AJAX traffic?VS 2005 doesn't record Ajax calls.Proxy-based tools tend to do well when recording Ajax.Some proxy based recorders can’t record https traffic. Jmeter, for example
Things that won’t work, at least easilyHighly JavaScript-dependent code.Any client-server interaction that is dependent on complex client-side computationUnless you re-implement the logic in your testing tool…Client-side decompressionClient side JS encryption (Don’t do this. Really.)ObfuscationStreaming
Recording Issues – Ajax + REST IssuesREST (Representational State Transfer) makes use of 4 HTTP verbs GET, POST, PUT and DELETEBrowsers do not have support for PUT and DELETE currently (HTML 5) But it IS supported in the XMLHttpRequest implementation in all major browsers.But, your load testing tool may not be able to record it, or replay it.Currently (Sept. 09) the case in Oracle e-Load.  Used to be an issue in JMeter.Likely still an issue in other tools.
Script MaintenanceScript recording	Unless you remember, or your testers determine every place Ajax has been added or removed from a script, you need to recreate your scripts for them to be accurate.A “real life” example:http://thedailywtf.com/Articles/Slowing-Time.aspx
Statefulness ConsiderationAjax requests may require a session cookie, or value in a cookie.If the cookie is not configured to be updated, the request will fail.
Client-side JS Timestamp on CacheTimestamps may be hard coded in your recorded postsWe have seen JavaScript caching, with timestamps which need to be updated.
Validate Ajax ReturnsFor valid testing, the return values of AJAX calls must be validated.  If they are not validated, the script may appear to work past the number of users which the application can support.
AutoComplete FieldsThink time between Ajax requests—users type quickly.In order to replicate real load, and exercise any caching effectively, requests must be parameterized.AutoComplete fields send requests key-by-key. Parameterization may not account for this properly.
Ajax Load Testing Concerns By Eric Beland
Ajax AutocompleteAutocomplete made these requests:Parameterization is tricky.
The correct way to generate the load is to make multiple requests for the parameter.
Additionally, it looks like cp=could be a character count. http://clients1.google.com/complete/search?hl=en&client=hp&q=a&cp=1http://clients1.google.com/complete/search?hl=en&client=hp&q=aja&cp=3http://clients1.google.com/complete/search?hl=en&client=hp&q=ajax&cp=4
AJAX Polling or AJAX StreamingJavaScript which does AJAX polling in the background. Polling interval may change, which changes the load associated with a page.Comet (Streaming)When added or removed, load scripts must be updated.
ReportingMany tools work on the “page” model for load testing.  Ajax apps do not necessarily follow the page model, and in many cases, the application is not “working” when the AJAX functionality is not working.Ajax timeouts must be treated as full-fledged failures.
AJAX Response TimesAJAX response time expectationsNot the same as page load response expectationsAjax response times should follow UI response time rules, which have their own laws, and generally need to be faster.A 6 second page load might be ok, but a 6 second lag between UI responses is painfulUI Responsiveness rules are pretty brutal when applied to web applications.
TimeoutsChoosing timeoutsLoad/Scalability testsLower timeouts are appropriate for Ajax heavy applications.Determine how many users you can support within acceptable-response times.10 seconds is probably a reasonable threshold for an Ajax request.
AJAX/UI response time rules Excerpt from Jacob Nielsen's Usability Engineering"The basic advice regarding response times has been about the same for almost thirty years [Miller 1968; Card et al. 1991]: 0.1 second is about the limit for having the user feel that the system is reacting instantaneously, meaning that no special feedback is necessary except to display the result. 1.0 second is about the limit for the user's flow of thought to stay uninterrupted, even though the user will notice the delay. Normally, no special feedback is necessary during delays of more than 0.1 but less than 1.0 second, but the user does lose the feeling of operating directly on the data. 10 seconds is about the limit for keeping the user's attention focused on the dialogue. For longer delays, users will want to perform other tasks while waiting for the computer to finish, so they should be given feedback indicating when the computer expects to be done. Feedback during the delay is especially important if the response time is likely to be highly variable, since users will then not know what to expect."
New Alternatives to HTTP Layer TestingBrowser-based load testing.Historically, not very scalable.Enter the cloudThe cloud makes browser based load testing scalable. LoadStorm
BenefitsScript maintainabilityChanges to the websites AJAX code will flow through as JavaScript is executed at test-time.Proper handling of: Changes to Polling intervalsNew AJAX requestsDeleted AJAX requestsAuto-complete fields
Ad

More Related Content

What's hot (20)

Using Automation to Meet Demands for Performance and Quality
Using Automation to Meet Demands for Performance and QualityUsing Automation to Meet Demands for Performance and Quality
Using Automation to Meet Demands for Performance and Quality
Neotys
 
Mountebank and you
Mountebank and youMountebank and you
Mountebank and you
VodqaBLR
 
Web performance testing
Web performance testingWeb performance testing
Web performance testing
Patrick Meenan
 
ASP.NET AJAX with Visual Studio 2008
ASP.NET AJAX with Visual Studio 2008ASP.NET AJAX with Visual Studio 2008
ASP.NET AJAX with Visual Studio 2008
Caleb Jenkins
 
Performance testing automation with Dynatrace @LDNWebPerf - AndreasGrabner
Performance testing automation with Dynatrace  @LDNWebPerf - AndreasGrabnerPerformance testing automation with Dynatrace  @LDNWebPerf - AndreasGrabner
Performance testing automation with Dynatrace @LDNWebPerf - AndreasGrabner
Stephen Thair
 
Slideshare - Magento Imagine - Do You Queue
Slideshare - Magento Imagine - Do You QueueSlideshare - Magento Imagine - Do You Queue
Slideshare - Magento Imagine - Do You Queue
10n Software, LLC
 
Effectively Monitoring Client-Side Performance
Effectively Monitoring Client-Side PerformanceEffectively Monitoring Client-Side Performance
Effectively Monitoring Client-Side Performance
Andrew Rota
 
Load testing with vs 2013
Load testing with vs 2013Load testing with vs 2013
Load testing with vs 2013
Fahad Shiekh
 
Ajax & ASP.NET 2
Ajax & ASP.NET 2Ajax & ASP.NET 2
Ajax & ASP.NET 2
Talal Alsubaie
 
Lightning page optimization & best practices
Lightning page optimization & best practicesLightning page optimization & best practices
Lightning page optimization & best practices
Gaurav Jain
 
Load testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew SiemerLoad testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew Siemer
Andrew Siemer
 
10 practices that every developer needs to start right now
10 practices that every developer needs to start right now10 practices that every developer needs to start right now
10 practices that every developer needs to start right now
Caleb Jenkins
 
From Zero to Performance Hero in Minutes - Agile Testing Days 2014 Potsdam
From Zero to Performance Hero in Minutes - Agile Testing Days 2014 PotsdamFrom Zero to Performance Hero in Minutes - Agile Testing Days 2014 Potsdam
From Zero to Performance Hero in Minutes - Agile Testing Days 2014 Potsdam
Andreas Grabner
 
Client-side Web Performance Optimization [paper]
Client-side Web Performance Optimization [paper]Client-side Web Performance Optimization [paper]
Client-side Web Performance Optimization [paper]
Jakob
 
Systematic Load Testing of Web Applications
Systematic Load Testing of Web ApplicationsSystematic Load Testing of Web Applications
Systematic Load Testing of Web Applications
Jürg Stuker
 
Client side performance analysis
Client side performance analysisClient side performance analysis
Client side performance analysis
Tsimafei Avilin
 
Sydney Continuous Delivery Meetup May 2014
Sydney Continuous Delivery Meetup May 2014Sydney Continuous Delivery Meetup May 2014
Sydney Continuous Delivery Meetup May 2014
Andreas Grabner
 
Performance Testing With Loadrunner
Performance Testing With LoadrunnerPerformance Testing With Loadrunner
Performance Testing With Loadrunner
vladimir zaremba
 
Performance Metrics for your Build Pipeline - presented at Vienna WebPerf Oct...
Performance Metrics for your Build Pipeline - presented at Vienna WebPerf Oct...Performance Metrics for your Build Pipeline - presented at Vienna WebPerf Oct...
Performance Metrics for your Build Pipeline - presented at Vienna WebPerf Oct...
Andreas Grabner
 
Visual studio performance testing quick reference guide 3 6
Visual studio performance testing quick reference guide 3 6Visual studio performance testing quick reference guide 3 6
Visual studio performance testing quick reference guide 3 6
Srimanta Kumar Sahu
 
Using Automation to Meet Demands for Performance and Quality
Using Automation to Meet Demands for Performance and QualityUsing Automation to Meet Demands for Performance and Quality
Using Automation to Meet Demands for Performance and Quality
Neotys
 
Mountebank and you
Mountebank and youMountebank and you
Mountebank and you
VodqaBLR
 
Web performance testing
Web performance testingWeb performance testing
Web performance testing
Patrick Meenan
 
ASP.NET AJAX with Visual Studio 2008
ASP.NET AJAX with Visual Studio 2008ASP.NET AJAX with Visual Studio 2008
ASP.NET AJAX with Visual Studio 2008
Caleb Jenkins
 
Performance testing automation with Dynatrace @LDNWebPerf - AndreasGrabner
Performance testing automation with Dynatrace  @LDNWebPerf - AndreasGrabnerPerformance testing automation with Dynatrace  @LDNWebPerf - AndreasGrabner
Performance testing automation with Dynatrace @LDNWebPerf - AndreasGrabner
Stephen Thair
 
Slideshare - Magento Imagine - Do You Queue
Slideshare - Magento Imagine - Do You QueueSlideshare - Magento Imagine - Do You Queue
Slideshare - Magento Imagine - Do You Queue
10n Software, LLC
 
Effectively Monitoring Client-Side Performance
Effectively Monitoring Client-Side PerformanceEffectively Monitoring Client-Side Performance
Effectively Monitoring Client-Side Performance
Andrew Rota
 
Load testing with vs 2013
Load testing with vs 2013Load testing with vs 2013
Load testing with vs 2013
Fahad Shiekh
 
Lightning page optimization & best practices
Lightning page optimization & best practicesLightning page optimization & best practices
Lightning page optimization & best practices
Gaurav Jain
 
Load testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew SiemerLoad testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew Siemer
Andrew Siemer
 
10 practices that every developer needs to start right now
10 practices that every developer needs to start right now10 practices that every developer needs to start right now
10 practices that every developer needs to start right now
Caleb Jenkins
 
From Zero to Performance Hero in Minutes - Agile Testing Days 2014 Potsdam
From Zero to Performance Hero in Minutes - Agile Testing Days 2014 PotsdamFrom Zero to Performance Hero in Minutes - Agile Testing Days 2014 Potsdam
From Zero to Performance Hero in Minutes - Agile Testing Days 2014 Potsdam
Andreas Grabner
 
Client-side Web Performance Optimization [paper]
Client-side Web Performance Optimization [paper]Client-side Web Performance Optimization [paper]
Client-side Web Performance Optimization [paper]
Jakob
 
Systematic Load Testing of Web Applications
Systematic Load Testing of Web ApplicationsSystematic Load Testing of Web Applications
Systematic Load Testing of Web Applications
Jürg Stuker
 
Client side performance analysis
Client side performance analysisClient side performance analysis
Client side performance analysis
Tsimafei Avilin
 
Sydney Continuous Delivery Meetup May 2014
Sydney Continuous Delivery Meetup May 2014Sydney Continuous Delivery Meetup May 2014
Sydney Continuous Delivery Meetup May 2014
Andreas Grabner
 
Performance Testing With Loadrunner
Performance Testing With LoadrunnerPerformance Testing With Loadrunner
Performance Testing With Loadrunner
vladimir zaremba
 
Performance Metrics for your Build Pipeline - presented at Vienna WebPerf Oct...
Performance Metrics for your Build Pipeline - presented at Vienna WebPerf Oct...Performance Metrics for your Build Pipeline - presented at Vienna WebPerf Oct...
Performance Metrics for your Build Pipeline - presented at Vienna WebPerf Oct...
Andreas Grabner
 
Visual studio performance testing quick reference guide 3 6
Visual studio performance testing quick reference guide 3 6Visual studio performance testing quick reference guide 3 6
Visual studio performance testing quick reference guide 3 6
Srimanta Kumar Sahu
 

Viewers also liked (15)

Situation Analysis Deck - Social Media Listening & Monitoring Lanscape
Situation Analysis Deck - Social Media Listening & Monitoring LanscapeSituation Analysis Deck - Social Media Listening & Monitoring Lanscape
Situation Analysis Deck - Social Media Listening & Monitoring Lanscape
Great Minds Interactive, Inc.
 
Aprenda linux
Aprenda linuxAprenda linux
Aprenda linux
leviatan89
 
Selección de definición y otros insumos
Selección de definición y otros insumosSelección de definición y otros insumos
Selección de definición y otros insumos
AidaLuz30
 
Chemical Bonding In Sports ♥
Chemical Bonding In Sports ♥Chemical Bonding In Sports ♥
Chemical Bonding In Sports ♥
unicorn12
 
Evolucion hisorica de los computadores grado 10
Evolucion hisorica de los computadores grado 10Evolucion hisorica de los computadores grado 10
Evolucion hisorica de los computadores grado 10
Juan Medina
 
Ergonomics and Environmental Friendly Laptop
Ergonomics and Environmental Friendly Laptop Ergonomics and Environmental Friendly Laptop
Ergonomics and Environmental Friendly Laptop
sureshbtechmba
 
Communication conflict interdisciplinary_team
Communication conflict interdisciplinary_teamCommunication conflict interdisciplinary_team
Communication conflict interdisciplinary_team
caebaptist
 
Recursos y servicios de información de las comunidades científicas: Los repo...
Recursos y servicios de información de las comunidades científicas:  Los repo...Recursos y servicios de información de las comunidades científicas:  Los repo...
Recursos y servicios de información de las comunidades científicas: Los repo...
Belarmina Benitez
 
Session04 pt
Session04 ptSession04 pt
Session04 pt
Rini Puspita Julianti
 
Clase macromoleculas
Clase macromoleculasClase macromoleculas
Clase macromoleculas
Aluc7
 
Confeccionvestidoindustriatextil tec
Confeccionvestidoindustriatextil tecConfeccionvestidoindustriatextil tec
Confeccionvestidoindustriatextil tec
coordtecnologias
 
3º Workshop de Aprendizagem e Desenvolvimento - Palestra de Tiago Tamborini.
3º Workshop de Aprendizagem e Desenvolvimento - Palestra de Tiago Tamborini.3º Workshop de Aprendizagem e Desenvolvimento - Palestra de Tiago Tamborini.
3º Workshop de Aprendizagem e Desenvolvimento - Palestra de Tiago Tamborini.
Trevisan Escola de Negócios
 
D Archana
D ArchanaD Archana
D Archana
st anns PG College,Mallapur,Hyderabad, India
 
Masterthesis Bewonersparticipatie In De Netwerksamenleving En De Meerwaarde V...
Masterthesis Bewonersparticipatie In De Netwerksamenleving En De Meerwaarde V...Masterthesis Bewonersparticipatie In De Netwerksamenleving En De Meerwaarde V...
Masterthesis Bewonersparticipatie In De Netwerksamenleving En De Meerwaarde V...
ejschreurs
 
Situation Analysis Deck - Social Media Listening & Monitoring Lanscape
Situation Analysis Deck - Social Media Listening & Monitoring LanscapeSituation Analysis Deck - Social Media Listening & Monitoring Lanscape
Situation Analysis Deck - Social Media Listening & Monitoring Lanscape
Great Minds Interactive, Inc.
 
Selección de definición y otros insumos
Selección de definición y otros insumosSelección de definición y otros insumos
Selección de definición y otros insumos
AidaLuz30
 
Chemical Bonding In Sports ♥
Chemical Bonding In Sports ♥Chemical Bonding In Sports ♥
Chemical Bonding In Sports ♥
unicorn12
 
Evolucion hisorica de los computadores grado 10
Evolucion hisorica de los computadores grado 10Evolucion hisorica de los computadores grado 10
Evolucion hisorica de los computadores grado 10
Juan Medina
 
Ergonomics and Environmental Friendly Laptop
Ergonomics and Environmental Friendly Laptop Ergonomics and Environmental Friendly Laptop
Ergonomics and Environmental Friendly Laptop
sureshbtechmba
 
Communication conflict interdisciplinary_team
Communication conflict interdisciplinary_teamCommunication conflict interdisciplinary_team
Communication conflict interdisciplinary_team
caebaptist
 
Recursos y servicios de información de las comunidades científicas: Los repo...
Recursos y servicios de información de las comunidades científicas:  Los repo...Recursos y servicios de información de las comunidades científicas:  Los repo...
Recursos y servicios de información de las comunidades científicas: Los repo...
Belarmina Benitez
 
Clase macromoleculas
Clase macromoleculasClase macromoleculas
Clase macromoleculas
Aluc7
 
Confeccionvestidoindustriatextil tec
Confeccionvestidoindustriatextil tecConfeccionvestidoindustriatextil tec
Confeccionvestidoindustriatextil tec
coordtecnologias
 
3º Workshop de Aprendizagem e Desenvolvimento - Palestra de Tiago Tamborini.
3º Workshop de Aprendizagem e Desenvolvimento - Palestra de Tiago Tamborini.3º Workshop de Aprendizagem e Desenvolvimento - Palestra de Tiago Tamborini.
3º Workshop de Aprendizagem e Desenvolvimento - Palestra de Tiago Tamborini.
Trevisan Escola de Negócios
 
Masterthesis Bewonersparticipatie In De Netwerksamenleving En De Meerwaarde V...
Masterthesis Bewonersparticipatie In De Netwerksamenleving En De Meerwaarde V...Masterthesis Bewonersparticipatie In De Netwerksamenleving En De Meerwaarde V...
Masterthesis Bewonersparticipatie In De Netwerksamenleving En De Meerwaarde V...
ejschreurs
 
Ad

Similar to Ajax Load Testing Concerns By Eric Beland (20)

Using Ajax In Domino Web Applications
Using Ajax In Domino Web ApplicationsUsing Ajax In Domino Web Applications
Using Ajax In Domino Web Applications
dominion
 
C sharp and asp.net interview questions
C sharp and asp.net interview questionsC sharp and asp.net interview questions
C sharp and asp.net interview questions
Akhil Mittal
 
M Ramya
M RamyaM Ramya
M Ramya
st anns PG College,Mallapur,Hyderabad, India
 
Ajax
AjaxAjax
Ajax
rahmed_sct
 
W-JAX Performance Workshop - Web and AJAX
W-JAX Performance Workshop - Web and AJAXW-JAX Performance Workshop - Web and AJAX
W-JAX Performance Workshop - Web and AJAX
Alois Reitbauer
 
Ajax: User Experience
Ajax: User ExperienceAjax: User Experience
Ajax: User Experience
petrov
 
Oracle appsloadtestbestpractices
Oracle appsloadtestbestpracticesOracle appsloadtestbestpractices
Oracle appsloadtestbestpractices
sonusaini69
 
Ajax
AjaxAjax
Ajax
devisp
 
PAC 2019 virtual Arjan Van Den Berg
PAC 2019 virtual Arjan Van Den Berg  PAC 2019 virtual Arjan Van Den Berg
PAC 2019 virtual Arjan Van Den Berg
Neotys
 
Ajax and PHP
Ajax and PHPAjax and PHP
Ajax and PHP
John Coggeshall
 
Developing Java Web Applications In Google App Engine
Developing Java Web Applications In Google App EngineDeveloping Java Web Applications In Google App Engine
Developing Java Web Applications In Google App Engine
Tahir Akram
 
25250716 seminar-on-ajax text
25250716 seminar-on-ajax text25250716 seminar-on-ajax text
25250716 seminar-on-ajax text
Kamleshh Chandnani
 
Ajax
Ajax Ajax
Ajax
Usman Khan
 
CTS Conference Web 2.0 Tutorial Part 2
CTS Conference Web 2.0 Tutorial Part 2CTS Conference Web 2.0 Tutorial Part 2
CTS Conference Web 2.0 Tutorial Part 2
Geoffrey Fox
 
Ajax
AjaxAjax
Ajax
Mahesh Shitole
 
Presemtation Tier Optimizations
Presemtation Tier OptimizationsPresemtation Tier Optimizations
Presemtation Tier Optimizations
Anup Hariharan Nair
 
An Introduction to Ajax Programming
An Introduction to Ajax ProgrammingAn Introduction to Ajax Programming
An Introduction to Ajax Programming
hchen1
 
Ajax
AjaxAjax
Ajax
ch samaram
 
jQuery Ajax
jQuery AjaxjQuery Ajax
jQuery Ajax
Anand Kumar Rajana
 
wa-cometjava-pdf
wa-cometjava-pdfwa-cometjava-pdf
wa-cometjava-pdf
Hiroshi Ono
 
Using Ajax In Domino Web Applications
Using Ajax In Domino Web ApplicationsUsing Ajax In Domino Web Applications
Using Ajax In Domino Web Applications
dominion
 
C sharp and asp.net interview questions
C sharp and asp.net interview questionsC sharp and asp.net interview questions
C sharp and asp.net interview questions
Akhil Mittal
 
W-JAX Performance Workshop - Web and AJAX
W-JAX Performance Workshop - Web and AJAXW-JAX Performance Workshop - Web and AJAX
W-JAX Performance Workshop - Web and AJAX
Alois Reitbauer
 
Ajax: User Experience
Ajax: User ExperienceAjax: User Experience
Ajax: User Experience
petrov
 
Oracle appsloadtestbestpractices
Oracle appsloadtestbestpracticesOracle appsloadtestbestpractices
Oracle appsloadtestbestpractices
sonusaini69
 
PAC 2019 virtual Arjan Van Den Berg
PAC 2019 virtual Arjan Van Den Berg  PAC 2019 virtual Arjan Van Den Berg
PAC 2019 virtual Arjan Van Den Berg
Neotys
 
Developing Java Web Applications In Google App Engine
Developing Java Web Applications In Google App EngineDeveloping Java Web Applications In Google App Engine
Developing Java Web Applications In Google App Engine
Tahir Akram
 
CTS Conference Web 2.0 Tutorial Part 2
CTS Conference Web 2.0 Tutorial Part 2CTS Conference Web 2.0 Tutorial Part 2
CTS Conference Web 2.0 Tutorial Part 2
Geoffrey Fox
 
An Introduction to Ajax Programming
An Introduction to Ajax ProgrammingAn Introduction to Ajax Programming
An Introduction to Ajax Programming
hchen1
 
wa-cometjava-pdf
wa-cometjava-pdfwa-cometjava-pdf
wa-cometjava-pdf
Hiroshi Ono
 
Ad

Recently uploaded (20)

Wellness & Holistic Gifts for Mom: Celebrate Her Spirit with Mogul Interior
Wellness & Holistic Gifts for Mom: Celebrate Her Spirit with Mogul InteriorWellness & Holistic Gifts for Mom: Celebrate Her Spirit with Mogul Interior
Wellness & Holistic Gifts for Mom: Celebrate Her Spirit with Mogul Interior
Era Chandok
 
Revista Ser Padres (Sección Mamá Bloguera)
Revista Ser Padres (Sección Mamá Bloguera)Revista Ser Padres (Sección Mamá Bloguera)
Revista Ser Padres (Sección Mamá Bloguera)
Karina Cortes
 
Chris Hilken on Navigating Parenting During Life Transitions
Chris Hilken on Navigating Parenting During Life TransitionsChris Hilken on Navigating Parenting During Life Transitions
Chris Hilken on Navigating Parenting During Life Transitions
Chris Hilken
 
Bucket Hats: From Practical Accessory to Fashion Icon – A Style That Never Fa...
Bucket Hats: From Practical Accessory to Fashion Icon – A Style That Never Fa...Bucket Hats: From Practical Accessory to Fashion Icon – A Style That Never Fa...
Bucket Hats: From Practical Accessory to Fashion Icon – A Style That Never Fa...
3Cube
 
PVC Ecology Fence for Eco-Conscious Spaces
PVC Ecology Fence for Eco-Conscious SpacesPVC Ecology Fence for Eco-Conscious Spaces
PVC Ecology Fence for Eco-Conscious Spaces
professionalneonae
 
AHEPA Senior Living breaks ground on second South Bend community
AHEPA Senior Living breaks ground on second South Bend communityAHEPA Senior Living breaks ground on second South Bend community
AHEPA Senior Living breaks ground on second South Bend community
Ahepa Senior Living
 
What Defines A Crime Novel As A "Best Seller" In 2025?
What Defines A Crime Novel As A "Best Seller" In 2025?What Defines A Crime Novel As A "Best Seller" In 2025?
What Defines A Crime Novel As A "Best Seller" In 2025?
Nitish Bhushan
 
The Billionaires Illusion by Rich Vibes Publication
The Billionaires Illusion by Rich Vibes PublicationThe Billionaires Illusion by Rich Vibes Publication
The Billionaires Illusion by Rich Vibes Publication
Rich Vibes Publication
 
_The_ complete guide to public speaking -- Jeff Davidson;.pdf
_The_ complete guide to public speaking -- Jeff Davidson;.pdf_The_ complete guide to public speaking -- Jeff Davidson;.pdf
_The_ complete guide to public speaking -- Jeff Davidson;.pdf
KumaolTsega
 
How the NGO Eurasia Supports Volunteering Efforts on the Black Sea
How the NGO Eurasia Supports Volunteering Efforts on the Black SeaHow the NGO Eurasia Supports Volunteering Efforts on the Black Sea
How the NGO Eurasia Supports Volunteering Efforts on the Black Sea
luciekhensamphanh
 
How Modern Lifestyle Trends Are Shaping Daily Life in the USA
How Modern Lifestyle Trends Are Shaping Daily Life in the USAHow Modern Lifestyle Trends Are Shaping Daily Life in the USA
How Modern Lifestyle Trends Are Shaping Daily Life in the USA
Raj Kumble
 
Group3-Assignment3.ppJUY78T67R6DETSRWETDRYFUGHIJOPK[t
Group3-Assignment3.ppJUY78T67R6DETSRWETDRYFUGHIJOPK[tGroup3-Assignment3.ppJUY78T67R6DETSRWETDRYFUGHIJOPK[t
Group3-Assignment3.ppJUY78T67R6DETSRWETDRYFUGHIJOPK[t
Abodahab
 
Rostering Software for Disability Support
Rostering Software for Disability SupportRostering Software for Disability Support
Rostering Software for Disability Support
marketingbloom06
 
Someshwar Srivastava’s Guide to the CBI’s Modern-Day Struggles.pdf
Someshwar Srivastava’s Guide to the CBI’s Modern-Day Struggles.pdfSomeshwar Srivastava’s Guide to the CBI’s Modern-Day Struggles.pdf
Someshwar Srivastava’s Guide to the CBI’s Modern-Day Struggles.pdf
SomeshwarSrivastava1
 
dua-samat.ppt which is written for all to read
dua-samat.ppt which is written for all to readdua-samat.ppt which is written for all to read
dua-samat.ppt which is written for all to read
alirezarazzaz
 
Discovering Your True Value by Rich Vibes Publication
Discovering Your True Value by Rich Vibes PublicationDiscovering Your True Value by Rich Vibes Publication
Discovering Your True Value by Rich Vibes Publication
Rich Vibes Publication
 
Tree Trimming Tips Every Shellharbour Homeowner Should Know.pdf
Tree Trimming Tips Every Shellharbour Homeowner Should Know.pdfTree Trimming Tips Every Shellharbour Homeowner Should Know.pdf
Tree Trimming Tips Every Shellharbour Homeowner Should Know.pdf
All Round Tree Last Garden Care
 
Why Multitasking Fails: The Hidden Costs of Dividing Your Attention and the P...
Why Multitasking Fails: The Hidden Costs of Dividing Your Attention and the P...Why Multitasking Fails: The Hidden Costs of Dividing Your Attention and the P...
Why Multitasking Fails: The Hidden Costs of Dividing Your Attention and the P...
Rich Vibes Publication
 
Paralino- Fun, Private and encrypted location sharing
Paralino- Fun, Private and encrypted location sharingParalino- Fun, Private and encrypted location sharing
Paralino- Fun, Private and encrypted location sharing
Paralino
 
10. Material Lifecycle Office to Outdoor Seating.pdf
10. Material Lifecycle  Office to Outdoor Seating.pdf10. Material Lifecycle  Office to Outdoor Seating.pdf
10. Material Lifecycle Office to Outdoor Seating.pdf
diyasocial123
 
Wellness & Holistic Gifts for Mom: Celebrate Her Spirit with Mogul Interior
Wellness & Holistic Gifts for Mom: Celebrate Her Spirit with Mogul InteriorWellness & Holistic Gifts for Mom: Celebrate Her Spirit with Mogul Interior
Wellness & Holistic Gifts for Mom: Celebrate Her Spirit with Mogul Interior
Era Chandok
 
Revista Ser Padres (Sección Mamá Bloguera)
Revista Ser Padres (Sección Mamá Bloguera)Revista Ser Padres (Sección Mamá Bloguera)
Revista Ser Padres (Sección Mamá Bloguera)
Karina Cortes
 
Chris Hilken on Navigating Parenting During Life Transitions
Chris Hilken on Navigating Parenting During Life TransitionsChris Hilken on Navigating Parenting During Life Transitions
Chris Hilken on Navigating Parenting During Life Transitions
Chris Hilken
 
Bucket Hats: From Practical Accessory to Fashion Icon – A Style That Never Fa...
Bucket Hats: From Practical Accessory to Fashion Icon – A Style That Never Fa...Bucket Hats: From Practical Accessory to Fashion Icon – A Style That Never Fa...
Bucket Hats: From Practical Accessory to Fashion Icon – A Style That Never Fa...
3Cube
 
PVC Ecology Fence for Eco-Conscious Spaces
PVC Ecology Fence for Eco-Conscious SpacesPVC Ecology Fence for Eco-Conscious Spaces
PVC Ecology Fence for Eco-Conscious Spaces
professionalneonae
 
AHEPA Senior Living breaks ground on second South Bend community
AHEPA Senior Living breaks ground on second South Bend communityAHEPA Senior Living breaks ground on second South Bend community
AHEPA Senior Living breaks ground on second South Bend community
Ahepa Senior Living
 
What Defines A Crime Novel As A "Best Seller" In 2025?
What Defines A Crime Novel As A "Best Seller" In 2025?What Defines A Crime Novel As A "Best Seller" In 2025?
What Defines A Crime Novel As A "Best Seller" In 2025?
Nitish Bhushan
 
The Billionaires Illusion by Rich Vibes Publication
The Billionaires Illusion by Rich Vibes PublicationThe Billionaires Illusion by Rich Vibes Publication
The Billionaires Illusion by Rich Vibes Publication
Rich Vibes Publication
 
_The_ complete guide to public speaking -- Jeff Davidson;.pdf
_The_ complete guide to public speaking -- Jeff Davidson;.pdf_The_ complete guide to public speaking -- Jeff Davidson;.pdf
_The_ complete guide to public speaking -- Jeff Davidson;.pdf
KumaolTsega
 
How the NGO Eurasia Supports Volunteering Efforts on the Black Sea
How the NGO Eurasia Supports Volunteering Efforts on the Black SeaHow the NGO Eurasia Supports Volunteering Efforts on the Black Sea
How the NGO Eurasia Supports Volunteering Efforts on the Black Sea
luciekhensamphanh
 
How Modern Lifestyle Trends Are Shaping Daily Life in the USA
How Modern Lifestyle Trends Are Shaping Daily Life in the USAHow Modern Lifestyle Trends Are Shaping Daily Life in the USA
How Modern Lifestyle Trends Are Shaping Daily Life in the USA
Raj Kumble
 
Group3-Assignment3.ppJUY78T67R6DETSRWETDRYFUGHIJOPK[t
Group3-Assignment3.ppJUY78T67R6DETSRWETDRYFUGHIJOPK[tGroup3-Assignment3.ppJUY78T67R6DETSRWETDRYFUGHIJOPK[t
Group3-Assignment3.ppJUY78T67R6DETSRWETDRYFUGHIJOPK[t
Abodahab
 
Rostering Software for Disability Support
Rostering Software for Disability SupportRostering Software for Disability Support
Rostering Software for Disability Support
marketingbloom06
 
Someshwar Srivastava’s Guide to the CBI’s Modern-Day Struggles.pdf
Someshwar Srivastava’s Guide to the CBI’s Modern-Day Struggles.pdfSomeshwar Srivastava’s Guide to the CBI’s Modern-Day Struggles.pdf
Someshwar Srivastava’s Guide to the CBI’s Modern-Day Struggles.pdf
SomeshwarSrivastava1
 
dua-samat.ppt which is written for all to read
dua-samat.ppt which is written for all to readdua-samat.ppt which is written for all to read
dua-samat.ppt which is written for all to read
alirezarazzaz
 
Discovering Your True Value by Rich Vibes Publication
Discovering Your True Value by Rich Vibes PublicationDiscovering Your True Value by Rich Vibes Publication
Discovering Your True Value by Rich Vibes Publication
Rich Vibes Publication
 
Tree Trimming Tips Every Shellharbour Homeowner Should Know.pdf
Tree Trimming Tips Every Shellharbour Homeowner Should Know.pdfTree Trimming Tips Every Shellharbour Homeowner Should Know.pdf
Tree Trimming Tips Every Shellharbour Homeowner Should Know.pdf
All Round Tree Last Garden Care
 
Why Multitasking Fails: The Hidden Costs of Dividing Your Attention and the P...
Why Multitasking Fails: The Hidden Costs of Dividing Your Attention and the P...Why Multitasking Fails: The Hidden Costs of Dividing Your Attention and the P...
Why Multitasking Fails: The Hidden Costs of Dividing Your Attention and the P...
Rich Vibes Publication
 
Paralino- Fun, Private and encrypted location sharing
Paralino- Fun, Private and encrypted location sharingParalino- Fun, Private and encrypted location sharing
Paralino- Fun, Private and encrypted location sharing
Paralino
 
10. Material Lifecycle Office to Outdoor Seating.pdf
10. Material Lifecycle  Office to Outdoor Seating.pdf10. Material Lifecycle  Office to Outdoor Seating.pdf
10. Material Lifecycle Office to Outdoor Seating.pdf
diyasocial123
 

Ajax Load Testing Concerns By Eric Beland

  • 1. Ajax Load Testing ConsiderationsLoad Testing Ajax Websites
  • 2. Background Eric Beland Co-Founder, Testomatixhttp://[email protected]: @testomatix Testomatix provides full service performance testing including expert planning, scripting, and test execution. We test for you, and help you tune.
  • 4. Will it Scale?What happens when people show up?
  • 5. Testing at the HTTP Layer
  • 6. Testing at the HTTP LayerAdvantage: Scalable - No browserSmall memory and CPU footprint Tools: HP LoadRunner, Jmeter, Grinder, Oracle e-LoadCreated by: Recording from within the browser—browser plugins or hooks.Intercepting requests with a proxy tool. May be hand-scripted.
  • 7. Challenges At the HTTP layerThings that aren’t as smooth when simulating the browser…
  • 9. Hard-coded URLsIf a request is dependent on a previous Ajax request which, after a certain number of users starts failing, a real user would fail. If you have a hard-coded the URL, your test will pass when it shouldn’t.If an Ajax request is vital to the user interaction,Content-checked (match against text in the HTML)Or defined as a RegExp source for navigation
  • 11. Recording Issues – Is it recording?Does your tool record AJAX traffic?VS 2005 doesn't record Ajax calls.Proxy-based tools tend to do well when recording Ajax.Some proxy based recorders can’t record https traffic. Jmeter, for example
  • 12. Things that won’t work, at least easilyHighly JavaScript-dependent code.Any client-server interaction that is dependent on complex client-side computationUnless you re-implement the logic in your testing tool…Client-side decompressionClient side JS encryption (Don’t do this. Really.)ObfuscationStreaming
  • 13. Recording Issues – Ajax + REST IssuesREST (Representational State Transfer) makes use of 4 HTTP verbs GET, POST, PUT and DELETEBrowsers do not have support for PUT and DELETE currently (HTML 5) But it IS supported in the XMLHttpRequest implementation in all major browsers.But, your load testing tool may not be able to record it, or replay it.Currently (Sept. 09) the case in Oracle e-Load. Used to be an issue in JMeter.Likely still an issue in other tools.
  • 14. Script MaintenanceScript recording Unless you remember, or your testers determine every place Ajax has been added or removed from a script, you need to recreate your scripts for them to be accurate.A “real life” example:http://thedailywtf.com/Articles/Slowing-Time.aspx
  • 15. Statefulness ConsiderationAjax requests may require a session cookie, or value in a cookie.If the cookie is not configured to be updated, the request will fail.
  • 16. Client-side JS Timestamp on CacheTimestamps may be hard coded in your recorded postsWe have seen JavaScript caching, with timestamps which need to be updated.
  • 17. Validate Ajax ReturnsFor valid testing, the return values of AJAX calls must be validated. If they are not validated, the script may appear to work past the number of users which the application can support.
  • 18. AutoComplete FieldsThink time between Ajax requests—users type quickly.In order to replicate real load, and exercise any caching effectively, requests must be parameterized.AutoComplete fields send requests key-by-key. Parameterization may not account for this properly.
  • 20. Ajax AutocompleteAutocomplete made these requests:Parameterization is tricky.
  • 21. The correct way to generate the load is to make multiple requests for the parameter.
  • 22. Additionally, it looks like cp=could be a character count. http://clients1.google.com/complete/search?hl=en&client=hp&q=a&cp=1http://clients1.google.com/complete/search?hl=en&client=hp&q=aja&cp=3http://clients1.google.com/complete/search?hl=en&client=hp&q=ajax&cp=4
  • 23. AJAX Polling or AJAX StreamingJavaScript which does AJAX polling in the background. Polling interval may change, which changes the load associated with a page.Comet (Streaming)When added or removed, load scripts must be updated.
  • 24. ReportingMany tools work on the “page” model for load testing. Ajax apps do not necessarily follow the page model, and in many cases, the application is not “working” when the AJAX functionality is not working.Ajax timeouts must be treated as full-fledged failures.
  • 25. AJAX Response TimesAJAX response time expectationsNot the same as page load response expectationsAjax response times should follow UI response time rules, which have their own laws, and generally need to be faster.A 6 second page load might be ok, but a 6 second lag between UI responses is painfulUI Responsiveness rules are pretty brutal when applied to web applications.
  • 26. TimeoutsChoosing timeoutsLoad/Scalability testsLower timeouts are appropriate for Ajax heavy applications.Determine how many users you can support within acceptable-response times.10 seconds is probably a reasonable threshold for an Ajax request.
  • 27. AJAX/UI response time rules Excerpt from Jacob Nielsen's Usability Engineering"The basic advice regarding response times has been about the same for almost thirty years [Miller 1968; Card et al. 1991]: 0.1 second is about the limit for having the user feel that the system is reacting instantaneously, meaning that no special feedback is necessary except to display the result. 1.0 second is about the limit for the user's flow of thought to stay uninterrupted, even though the user will notice the delay. Normally, no special feedback is necessary during delays of more than 0.1 but less than 1.0 second, but the user does lose the feeling of operating directly on the data. 10 seconds is about the limit for keeping the user's attention focused on the dialogue. For longer delays, users will want to perform other tasks while waiting for the computer to finish, so they should be given feedback indicating when the computer expects to be done. Feedback during the delay is especially important if the response time is likely to be highly variable, since users will then not know what to expect."
  • 28. New Alternatives to HTTP Layer TestingBrowser-based load testing.Historically, not very scalable.Enter the cloudThe cloud makes browser based load testing scalable. LoadStorm
  • 29. BenefitsScript maintainabilityChanges to the websites AJAX code will flow through as JavaScript is executed at test-time.Proper handling of: Changes to Polling intervalsNew AJAX requestsDeleted AJAX requestsAuto-complete fields
  • 30. When to use browser-based testingWhen you have an Ajax heavy or dynamic siteWhen you have flash or difficult-to-reproduce interactions.When your man-hours are preciousEasier maintenance and development make it worthwhileGenerally affordable for small tests, run frequentlyWhen you can!
  • 31. When not to used browser-based testingWhen you need to test 200,000 users.Cost prohibitiveWhen you cannot expose your site to external traffic (intranet)There are commercial load testing tools that let you run real browsers locally. For smaller tests, this can work.

Editor's Notes

  • #10: Need photo
  • #12: Mention firebug…
  • #13: Via Ajax
  • #19: Should say “send request” instead of type
  • #21: Requests in two places
  • #22: Heartbeat slide should be next to this
  • #28: Remove extra bullet