Load Testing

Best Practices

With a Spree App



Brought to you by ninefold.com
@mookiy

(˘˘)

What is 

load testing?


Load Testing ≠ Wikipedia!


Software
Quality Assurance



Load Testing

(AKA Software Performance Testing)



Load testing is ...


Performance testing

It's not just load testing!

Load testing


Stress testing


Endurance testing

Why do we need it?


http://images2.fanpop.com/images/photos/3100000/why-so-serious-the-joker-3122768-1024-768.jpg


Black Friday


Cyber Monday

Best practices?


http://www.albanygnosisny.com/wp-content/uploads/2013/08/Thinking-Man-Stock_000005908297Medium11.jpg

Plan

Configure

Script

Execute

Analyze

http://www.neustar.biz/resources/whitepapers/load-testing-best-practices-whitepaper

Example time!




RNA Reset

PLAN:


What?
Length?
Costs?
Type?
Limitations?

What are we testing?


25,000 people
Influx of users


Database is OK?

Too front-end heavy?

How long to test?


http://img1.wikia.nocookie.net/__cb20130624212044/disney/images/8/8b/White_Rabbit.gif

Cost prohibitive?


https://s3.amazonaws.com/assets.svpply.com/large/975631.jpg

What kind? What type?


Load?


Stress?


Endurance?


Optimization?

Any Limitations?




Configure:


Setup?
Users?
Duration?
Staging?


What's the Setup?



How large are the servers?


How many web servers are needed?


How many users?



http://static.guim.co.uk/sys-images/Guardian/Pix/pictures/2013/1/30/1359549064145/Crowd-of-people-008.jpg

What's the Test Duration?


http://upload.wikimedia.org/wikipedia/commons/3/37/Clock.gif

Is Staging set up properly?


http://community.weber.edu/deeeventscenter/images/stage-set-up-1.jpg

Script:


Simple
Requests
Ruby
JMeter

Keep it simple!


http://www.hispanicallyspeakingnews.com/uploads/images/amigo-o-enemigo/KISS2-300x291.gif

HTTP Requests


JSON? TEXT?

Ruby is the best!


JMeter

Execute:


App Monitoring Tools
Load Testing Tools


Pick your poison...


App Monitoring Tools


Skylight
New Relic
Server Density
AppDynamics



Load Testing Tools


LoadImpact.com
Blitz.io
Loader.io
Flood.io



Analyze:


Results
Optimize


What to Optimize


Caching. 
CDNs. 
Background workers.
Changing types of Javascript being used.

Bottom Line:










_______________________________________

Best Practices

1) Plan
2) Configure
3) Script
4) Execute
5) Analyze
6) ???
7) Profit!


Thank you!

@mookiy

risa@ninefold.com

(˘˘)

Load Testing Best Practices (incomplete)

By rbatta

Load Testing Best Practices (incomplete)

Quality assurance: Load Testing Best Practices (with a Spree app)

  • 1,408