Slide 1

Slide 1 text

LOAD TESTING Reinvented for DevOps @tim_koopmans Velocity 2018 CA

Slide 2

Slide 2 text

/ lōd test / load test verb gerund or present participle: load testing simulate demand on a system and measure it for performance “she was load testing in production, what could go wrong?”

Slide 3

Slide 3 text

/ˌrēinˈvent / re·in·vent verb gerund or present participle: reinventing change something so much that it appears to be entirely new “he launched a ton of browsers and reinvented load testing”

Slide 4

Slide 4 text

/dəˈveləpməntˌäpəˈrāSH(ə)n / dev·ops verb gerund or present participle: devops No definitions found. Search the web “I do devops”

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

7,856 miles

Slide 11

Slide 11 text

14 hours

Slide 12

Slide 12 text

42 milliseconds

Slide 13

Slide 13 text

59 milliseconds

Slide 14

Slide 14 text

440 milliseconds

Slide 15

Slide 15 text

? seconds

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

WHY? https://reddit.com/r/whatcouldgowrong/comments/8o21n6/drifting_on_ice_wcgw/

Slide 18

Slide 18 text

!

Slide 19

Slide 19 text

! Performance ! Availability ! Reliability ! Scalability

Slide 20

Slide 20 text

Performance

Slide 21

Slide 21 text

Performance

Slide 22

Slide 22 text

Performance

Slide 23

Slide 23 text

Performance

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

Availability

Slide 26

Slide 26 text

Availability

Slide 27

Slide 27 text

Availability

Slide 28

Slide 28 text

Availability

Slide 29

Slide 29 text

Availability

Slide 30

Slide 30 text

Reliability

Slide 31

Slide 31 text

Reliability

Slide 32

Slide 32 text

Reliability

Slide 33

Slide 33 text

Scalability

Slide 34

Slide 34 text

Scalability

Slide 35

Slide 35 text

Scalability

Slide 36

Slide 36 text

Scalability

Slide 37

Slide 37 text

HOW?

Slide 38

Slide 38 text

Simulate demand Measure performance

Slide 39

Slide 39 text

Measure Simulate ?

Slide 40

Slide 40 text

Simulation Options

Slide 41

Slide 41 text

Simulating browsers

Slide 42

Slide 42 text

Simulating protocols

Slide 43

Slide 43 text

flood.io

Slide 44

Slide 44 text

URL testing

Slide 45

Slide 45 text

Caching everywhere

Slide 46

Slide 46 text

Protocol testing

Slide 47

Slide 47 text

No content

Slide 48

Slide 48 text

So you want to visit amazon.com How many requests will that take? Browser testing

Slide 49

Slide 49 text

1 Visit +300 Requests Browser Level Protocol Level

Slide 50

Slide 50 text

Browsers are changing

Slide 51

Slide 51 text

Protocols have evolved 1997 HTTP 1.1 2015 HTTP 2.0 2006 XHR jQuery 2011 WebSocket iOS Android 2014 HTML5 ReactJS …

Slide 52

Slide 52 text

Load testing has not

Slide 53

Slide 53 text

Protocol level traps

Slide 54

Slide 54 text

Protocol level recording

Slide 55

Slide 55 text

Protocol level testing

Slide 56

Slide 56 text

Comparing two runs

Slide 57

Slide 57 text

Header differences

Slide 58

Slide 58 text

Cookie differences

Slide 59

Slide 59 text

Session differences

Slide 60

Slide 60 text

POST data differences

Slide 61

Slide 61 text

6 documents 45 requests 27 static assets 1 XHR 307 header values 39 post values 155 differences 78 cookie values 10 X-CSRF tokens

Slide 62

Slide 62 text

Protocol level debt Lots of code Isolated assets Fragile frameworks

Slide 63

Slide 63 text

Reinventing browser testing

Slide 64

Slide 64 text

Take the best of two breeds + = chrome.flood.io

Slide 65

Slide 65 text

No content

Slide 66

Slide 66 text

No content

Slide 67

Slide 67 text

No content

Slide 68

Slide 68 text

No content

Slide 69

Slide 69 text

No content

Slide 70

Slide 70 text

No content

Slide 71

Slide 71 text

Run it locally

Slide 72

Slide 72 text

Run it remotely

Slide 73

Slide 73 text

Browser level benefits Less code Reusable assets Repeatable frameworks

Slide 74

Slide 74 text

Load Testing Reinvented Simulate User Behavior Don’t pretend to be a browser

Slide 75

Slide 75 text

Use Modern Tools Use browsers not recorders Load Testing Reinvented

Slide 76

Slide 76 text

Leverage Cloud Resources Don’t try this on premise Load Testing Reinvented

Slide 77

Slide 77 text

I do devops

Slide 78

Slide 78 text

I do load testing