123
Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Performance Testing Crash Course By Dustin Whittle

Performance Testing Crash Course

Embed Size (px)

DESCRIPTION

Speaker: Dustin Whittle Applied Spring Track The performance of your application affects your business more than you might think. Top engineering organizations think of performance not as a nice-to-have, but as a crucial feature of their product. Those organizations understand that performance has a direct impact on user experience and, ultimately, their bottom line. Unfortunately, most engineering teams do not regularly test the performance and scalability of their infrastructure. Dustin Whittle shares the latest performance testing tools and insights into why your team should add performance testing to the development process. Learn how to evaluate performance and scalability on the server-side and the client-side with tools like Siege, Bees with Machine Guns, Google PageSpeed, WBench, and more. Take back an understanding of how to automate performance and load testing and evaluate the impact it has on performance and your business.

Citation preview

Page 1: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Performance Testing Crash CourseBy Dustin Whittle

Page 2: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

The performance of your application affects your business more than you might think. Top engineering organizations think of performance not as a nice-to-have, but as a crucial feature of their product. Those organizations understand that performance has a direct impact on user experience and, ultimately, their bottom line. Unfortunately,

most engineering teams do not regularly test the performance and scalability of their infrastructure. Join this session to find out about the latest performance testing tools and why your team should add

performance testing to your agile development process.

2

Page 3: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Agenda

• Why performance matters? • Case studies on business impact of performance

• Tools of the trade • MultiMechanize • Bees with Machine Guns • Google PageSpeed • AppDynamics

• Best practices • Server Side • Client Side

• Integrating into your process • Develop -> Test -> Deploy -> Repeat • What was the performance impact the last release? • What about the impact of that configuration change or package upgrade?

3

Page 4: Performance Testing Crash Course

• dustinwhittle.com

• @dustinwhittle

• San Francisco, California, USA

• Technologist, Traveler, Pilot, Skier, Diver, Sailor, Golfer

Dustin Whittle

Page 5: Performance Testing Crash Course

• Developer Evangelist @

• Consultant & Trainer @

• Developer Evangelist @

What I have worked on

Page 6: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Why does performance matter?

6

Page 7: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Microsoft found that Bing searches that were 2 seconds slower resulted in a 4.3% drop in

revenue per user

7

Page 8: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

When Mozilla shaved 2.2 seconds off their landing page, Firefox downloads increased

15.4%

8

Page 9: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Making Barack Obama’s website 60% faster increased donation conversions by 14%

9

Page 10: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Amazon and Walmart increase revenue 1% for every 100ms of improvement

10

Page 11: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

11

Page 12: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Performance directly impacts the bottom line

12

Page 13: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

13

Page 14: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

14

Page 15: Performance Testing Crash Course

HealthCare.gov

Page 16: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

An example spring app to test performance

16

Page 17: Performance Testing Crash Course
Page 18: Performance Testing Crash Course
Page 19: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

git clone https://github.com/cloudfoundry-samples/hello-spring-cloud

19

Page 20: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

mvn package

20

Page 21: Performance Testing Crash Course
Page 22: Performance Testing Crash Course
Page 23: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

cf push

23

Page 24: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

http://springone-demo.cfapps.io/

24

Page 25: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

25

Page 26: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Tools of the trade for performance testing

26

Page 27: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Understand your baseline performance

27

Page 28: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Static

vs

Hello World

vs

Applications

28

Page 29: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Apache Bench

29

Page 30: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

ab -c 1 -t 10 -k http://springone-demo.cfapps.io/

30

Page 31: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Benchmarking springone-demo.cfapps.io (be patient)Finished 187 requests

Server Software: Apache-Coyote/1.1Server Hostname: springone-demo.cfapps.ioServer Port: 80

Document Path: /Document Length: 5217 bytes

Concurrency Level: 1Time taken for tests: 10.039 secondsComplete requests: 187Failed requests: 0Keep-Alive requests: 187Total transferred: 1021768 bytesHTML transferred: 975579 bytesRequests per second: 18.63 [#/sec] (mean)Time per request: 53.687 [ms] (mean)Time per request: 53.687 [ms] (mean, across all concurrent requests)

31

Page 32: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

ab -c 10 -t 10 -k http://springone-demo.cfapps.io/

32

Page 33: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Benchmarking springone-demo.cfapps.io (be patient)Finished 659 requests

Server Software: Apache-Coyote/1.1Server Hostname: springone-demo.cfapps.ioServer Port: 80

Document Path: /Document Length: 5217 bytes

Concurrency Level: 10Time taken for tests: 10.015 secondsComplete requests: 659Failed requests: 0Keep-Alive requests: 659Total transferred: 3600776 bytesHTML transferred: 3438003 bytesRequests per second: 65.80 [#/sec] (mean)Time per request: 151.970 [ms] (mean)Time per request: 15.197 [ms] (mean, across all concurrent requests)

33

Page 34: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Siege

34

Page 35: Performance Testing Crash Course

siege -c 10 -b -t 10S http://springone-demo.cfapps.io/

Page 36: Performance Testing Crash Course

** SIEGE 3.0.6** Preparing 10 concurrent users for battle.The server is now under siege...Lifting the server siege... done.

Transactions: 623 hitsAvailability: 100.00 %Elapsed time: 9.57 secsData transferred: 3.10 MBResponse time: 0.15 secsTransaction rate: 65.10 trans/secThroughput: 0.32 MB/secConcurrency: 9.91Successful transactions: 623Failed transactions: 0Longest transaction: 0.30Shortest transaction: 0.10

Page 37: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Crawl the entire app to discover all urls

37

Page 38: Performance Testing Crash Course

sproxy -o ./urls.txt

Page 39: Performance Testing Crash Course

SPROXY v1.02 listening on port 9001...appending HTTP requests to: ./urls.txt...default connection timeout: 120 seconds

Page 40: Performance Testing Crash Course

wget -r -l 0 -t 1 --spider -w 1 -e "http_proxy = http://127.0.0.1:9001" "http://acmedemoapp.com/"

sort -u -o urls.txt urls.txt

Page 41: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

http://acmedemoapp.com/ http://acmedemoapp.com/about http://acmedemoapp.com/cart http://acmedemoapp.com/currency/change/EUR http://acmedemoapp.com/currency/change/GBP http://acmedemoapp.com/currency/change/USD http://acmedemoapp.com/login http://acmedemoapp.com/register/ http://acmedemoapp.com/t/brand/bookmania http://acmedemoapp.com/t/category/books http://acmedemoapp.com/t/category/mugs http://acmedemoapp.com/t/category/stickers http://acmedemoapp.com/terms-of-service

41

Page 42: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Benchmark traffic across all unique urls with siege

42

Page 43: Performance Testing Crash Course

siege -v -c 50 -i -t 3M -f urls.txt -d 10

Page 44: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Apache JMeter

44

Page 45: Performance Testing Crash Course
Page 46: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

46

Page 47: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Multi-Mechanize is an open source framework for performance and load

testing

47

Page 48: Performance Testing Crash Course

pip install multi-mechanize

Page 49: Performance Testing Crash Course

multimech-newproject demo

Page 50: Performance Testing Crash Course

import requests

class Transaction(object): def run(self): r = requests.get(‘http://acmedemoapp.com/) r.raw.read()

Page 51: Performance Testing Crash Course

import mechanizeimport time

class Transaction(object): def run(self): br = mechanize.Browser() br.set_handle_robots(False)

start_timer = time.time() resp = br.open(‘http://acmedemoapp.com/) resp.read() latency = time.time() - start_timer self.custom_timers['homepage'] = latency

start_timer = time.time() resp = br.open(‘http://acmedemoapp.com/cart') resp.read() latency = time.time() - start_timer self.custom_timers['cart'] = latency

assert (resp.code == 200)

Page 52: Performance Testing Crash Course

[global]run_time = 10rampup = 5results_ts_interval = 1progress_bar = onconsole_logging = offxml_report = on

[user_group-1]threads = 1script = demo.py

Page 53: Performance Testing Crash Course

multimech-run demo

Page 54: Performance Testing Crash Course
Page 55: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

What about when you need more than one machine?

55

Page 56: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Who lives in the cloud?

56

Page 57: Performance Testing Crash Course

Bees with Machine Guns

Page 58: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

A utility for arming (creating) many bees (micro EC2 instances)

to attack (load test) targets (web applications)

58

Page 59: Performance Testing Crash Course

pip install beeswithmachineguns

Page 60: Performance Testing Crash Course

# ~/.boto

[Credentials]

aws_access_key_id=xxx aws_secret_access_key=xxx

[Boto]

ec2_region_name = us-west-2 ec2_region_endpoint = ec2.us-west-2.amazonaws.com

Page 61: Performance Testing Crash Course

bees up -s 2 -g default -z us-west-2b -i ami-bc05898c -k appdynamics-

dustinwhittle-aws-us-west-2 -l ec2-user

Page 62: Performance Testing Crash Course

Connecting to the hive.Attempting to call up 2 bees.Waiting for bees to load their machine guns.......Bee i-3828400c is ready for the attack.Bee i-3928400d is ready for the attack.The swarm has assembled 2 bees.

Page 63: Performance Testing Crash Course

bees report

Page 64: Performance Testing Crash Course

Read 2 bees from the roster.Bee i-3828400c: running @ 54.212.22.176Bee i-3928400d: running @ 50.112.6.191

Page 65: Performance Testing Crash Course

bees attack -n 1000 -c 50 -u http://springone-demo.cfapps.io/

Page 66: Performance Testing Crash Course

Read 2 bees from the roster.Connecting to the hive.Assembling bees.Each of 2 bees will fire 500 rounds, 25 at a time.Stinging URL so it will be cached for the attack.Organizing the swarm.…Offensive complete. Complete requests: 1000 Requests per second: 306.540000 [#/sec] (mean) Time per request: 163.112000 [ms] (mean) 50% response time: 151.000000 [ms] (mean) 90% response time: 192.000000 [ms] (mean)Mission Assessment: Target crushed bee offensive.The swarm is awaiting new orders.

Page 67: Performance Testing Crash Course

bees attack -n 100000 -c 1000 -u http://springone-demo.cfapps.io/

Page 68: Performance Testing Crash Course

Read 2 bees from the roster.Connecting to the hive.Assembling bees.Each of 2 bees will fire 50000 rounds, 500 at a time.Stinging URL so it will be cached for the attack.Organizing the swarm.…Offensive complete. Complete requests: 100000 Requests per second: 502.420000 [#/sec] (mean) Time per request: 360.114000 [ms] (mean) 50% response time: 451.000000 [ms] (mean) 90% response time: 402.000000 [ms] (mean)Mission Assessment: Target crushed bee offensive.The swarm is awaiting new orders.

Page 69: Performance Testing Crash Course

Read 2 bees from the roster.Connecting to the hive.Assembling bees.Each of 2 bees will fire 50000 rounds, 500 at a time.Stinging URL so it will be cached for the attack.Organizing the swarm.Bee 0 is joining the swarm.Bee 1 is joining the swarm.Bee 0 is firing his machine gun. Bang bang!Bee 0 lost sight of the target (connection timed out).Bee 1 lost sight of the target (connection timed out).Offensive complete. Target timed out without fully responding to 2 bees. No bees completed the mission. Apparently your bees are peace-loving hippies.The swarm is awaiting new orders.

Page 70: Performance Testing Crash Course

bees down

Page 71: Performance Testing Crash Course

Read 2 bees from the roster.Connecting to the hive.Calling off the swarm.Stood down 2 bees.

Page 72: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

What about the client side?

72

Page 73: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

In modern web applications more latency comes from the client-side than the server-

side.

73

Page 74: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Google PageSpeed

74

Page 75: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Google PageSpeed Insights

75

Page 76: Performance Testing Crash Course
Page 77: Performance Testing Crash Course
Page 78: Performance Testing Crash Course

curl "https://www.googleapis.com/pagespeedonline/v1/runPagespeed?

url=http://dustinwhittle.com/&key=xxx"

Page 79: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

WBench

79

Page 80: Performance Testing Crash Course

gem install wbench

Page 81: Performance Testing Crash Course

wbench http://dustinwhittle.com/

Page 82: Performance Testing Crash Course
Page 83: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Automate client-side performance testing with Grunt

83

Page 84: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Use Bower (for dependencies), Grunt (for automation),

and Yeoman (for bootstrapping)

84

Page 85: Performance Testing Crash Course
Page 86: Performance Testing Crash Course
Page 87: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

How many people understand exactly how fast their site runs in production?

87

Page 88: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Track performance in development and production

88

Page 89: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Instrument everything = code, databases, caches, queues, third party services, and infrastructure.

89

Page 90: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Chef / Sensu

90

Page 91: Performance Testing Crash Course

http://sensuapp.org/

Page 92: Performance Testing Crash Course

Statsd + Graphite + Grafana

Page 93: Performance Testing Crash Course
Page 94: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Track performance of end users

94

Page 95: Performance Testing Crash Course

Episodes / Boomerang

Page 96: Performance Testing Crash Course
Page 97: Performance Testing Crash Course
Page 98: Performance Testing Crash Course
Page 99: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

webpagetest.org

99

Page 100: Performance Testing Crash Course
Page 101: Performance Testing Crash Course
Page 102: Performance Testing Crash Course
Page 103: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

SiteSpeed.io

103

Page 104: Performance Testing Crash Course
Page 105: Performance Testing Crash Course
Page 106: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

106

Page 107: Performance Testing Crash Course
Page 108: Performance Testing Crash Course
Page 109: Performance Testing Crash Course
Page 110: Performance Testing Crash Course
Page 111: Performance Testing Crash Course
Page 112: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Load testing services from the cloud

112

Page 113: Performance Testing Crash Course
Page 114: Performance Testing Crash Course
Page 115: Performance Testing Crash Course
Page 116: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Test for failures

• NetFlix Simian Army + Chaos Monkey

• What happens if you lose a caching layer? • What happens if dependencies slow down?

116

Page 117: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Best Practices

• Capacity plan and load test the server-side • Optimize and performance test the client-side • Understand your starting point • Instrument everything • Measure the difference of every change • Automate performance testing in your build and

deployment process • Understand how failures impact performance

117

Page 118: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Integrate automated performance testing into continuous integration for server-side

and client-side

118

Page 119: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Understand the performance implications of every deployment and package upgrade

119

Page 120: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Monitor end user experience from end to end in production

120

Page 121: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Questions?

121

Page 122: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/

Find these slides on SpeakerDeck

https://speakerdeck.com/dustinwhittle

122

Page 123: Performance Testing Crash Course

Unless otherwise indicated, these slides are © 2013-2014 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 123

Learn More. Stay Connected

Test and monitor your applications! Performance Testing Crash Course

@springcentral | spring.io/video