SlideShare a Scribd company logo
1 of 28
Download to read offline
Continuous performance
Load testing for developers with Gatling
Bert	Jan	Schrijver
@bjschrijverbertjan@openvalue.nl
@bjschrijver@bjschrijver@bjschrijver
Bert Jan Schrijver
Let’s meet
@bjschrijver@bjschrijver
Let’s meet
Tim van Eijndhoven
@bjschrijver@bjschrijver@bjschrijver
Outline
• Performance testing process
• Introduction to Gatling
• Demo
• Results
• Looking forward
• Summary
• Q&A
@bjschrijver@bjschrijver@bjschrijver
How it all started…
@bjschrijver@bjschrijver@bjschrijver
Performance testing should be
part of the process
@bjschrijver@bjschrijver@bjschrijver
Performance testing traditionally…
…happens several times per year



…and/or at major releases



…is performed by specialists



.. which is far from ideal:



- changes were made long ago



- many different code changes



- at a certain moment in time



- when is a test required?



@bjschrijver@bjschrijver@bjschrijver
Traditional performance testing
design
write code
test code
performance test
release
unit tests
integration tests
@bjschrijver@bjschrijver@bjschrijver
design
write code
test code
release
unit tests
integration tests
performance tests
Performance testing in 

continuous delivery
@bjschrijver@bjschrijver@bjschrijver
Continuous Delivery
Demands code to be
Always production ready
Short feedback cycles
Maintained by self-supporting

teams
In regard to performance
Has to be under control
Effects should be clear ASAP
No external specialists
@bjschrijver@bjschrijver@bjschrijver
Part of the process
With the same level of support as

- Unit tests and integration tests

- Continuous Integration

- Zero-downtime deployments

Performed by the development team
@bjschrijver@bjschrijver@bjschrijver
Performance testing process
Design Record Operationalise Execute Report
@bjschrijver@bjschrijver@bjschrijver
Designing scenarios
Generic tests 

that test core functionality
Specialised tests 

that test specific features (hot spots) in depth
@bjschrijver@bjschrijver
Tool support is key for
performance test adoption
@bjschrijver@bjschrijver
Gatling
package computerdatabase // 1
import io.gatling.core.Predef._ // 2
import io.gatling.http.Predef._
import scala.concurrent.duration._
class BasicSimulation extends Simulation { // 3
val httpConf = http // 4
.baseURL("http://computer-database.gatling.io") // 5
.acceptHeader("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8") // 6
.doNotTrackHeader("1")
.acceptLanguageHeader("en-US,en;q=0.5")
.acceptEncodingHeader("gzip, deflate")
.userAgentHeader("Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0")
val scn = scenario("BasicSimulation") // 7
.exec(http("request_1") // 8
.get("/")) // 9
.pause(5) // 10
setUp( // 11
scn.inject(atOnceUsers(1)) // 12
).protocols(httpConf) // 13
}
@bjschrijver@bjschrijver
Alternative tools
And many more…
@bjschrijver@bjschrijver
Gatling core concepts
Scenario
Feeder
A sequence of http requests used to simulate application usage
A tool used to fill request parameters
Recorder The tool used to record http requests or take a HAR-file 

and convert it to Gatling DSL
Gatling DSL Easy-to-read, developer-friendly way of defining tests
@bjschrijver@bjschrijver
Demo
@bjschrijver@bjschrijver
Scenario to outcome
Browser HAR-file
Gatling recorder DSL
Custom changes DSL
Gatling Report
@bjschrijver@bjschrijver
Demo
@bjschrijver@bjschrijver
Reports
@bjschrijver@bjschrijver@bjschrijver
Interpretations
We can

See how changes affect performance

Have feedback on performance in short amount of time



We cannot

See which load the application can endure in production

@bjschrijver@bjschrijver@bjschrijver
Results so far
- Prevented multiple issues in production
- Helped testing performance fixes and database tuning
- Discovered configuration error in test infrastructure
- Helped track down and validate a fix for a memory leak
- Helped tweak database indexes
- Made teams more aware of their product’s performance
@bjschrijver@bjschrijver@bjschrijver
- Automate (re-)recording process
- Re-use functional test scenarios as performance tests
- Eliminate custom code changes
Further development
@bjschrijver@bjschrijver@bjschrijver
Summary
@bjschrijver@bjschrijver@bjschrijver
Some take-aways
- Performance testing should be a first class citizen in your development cycle
- Frontend changes can impact backend performance
- Gatling is an awesome programmer friendly tool for load testing
- The approach we shared monitors performance trends - it does NOT
determine the maximum load a production environment can endure
https://github.com/timve/continuous-performance-demo
https://github.com/bertjan/gatling-seed
@bjschrijver@bjschrijver@bjschrijver
Questions?Questions?
@bjschrijver@bjschrijver@bjschrijver
Thanks for your time!
Liked it? Tweet it!
Slides: https://www.slideshare.net/BertJanSchrijver

More Related Content

Similar to OpenValue meetup January 2019 - Continuous performance - Load testing for developers with Gatling

Sdb Presentatie
Sdb PresentatieSdb Presentatie
Sdb Presentatiemenfey
 
JavaLand 2017 - Pipeline as code
JavaLand 2017 - Pipeline as codeJavaLand 2017 - Pipeline as code
JavaLand 2017 - Pipeline as codeBert Jan Schrijver
 
Scrum - hou grip op uw ontwikkelproces
Scrum - hou grip op uw ontwikkelprocesScrum - hou grip op uw ontwikkelproces
Scrum - hou grip op uw ontwikkelprocesDelta-N
 
ING : How top quality software and state-of-the-art technology leads to conti...
ING : How top quality software and state-of-the-art technology leads to conti...ING : How top quality software and state-of-the-art technology leads to conti...
ING : How top quality software and state-of-the-art technology leads to conti...NLJUG
 
Web applicatie van scratch
Web applicatie van scratchWeb applicatie van scratch
Web applicatie van scratchHanzehogeschool
 
BPUG Seminar 2014 Rik Marselis - effectief testen in agile
BPUG Seminar 2014 Rik Marselis - effectief testen in agileBPUG Seminar 2014 Rik Marselis - effectief testen in agile
BPUG Seminar 2014 Rik Marselis - effectief testen in agileRik Marselis
 
Hands-off performance testing - Twan Koot & Addy Zwiebel
Hands-off performance testing - Twan Koot & Addy ZwiebelHands-off performance testing - Twan Koot & Addy Zwiebel
Hands-off performance testing - Twan Koot & Addy ZwiebelSogeti Nederland B.V.
 
Workshop BI/DWH AGILE TESTING Zwitserleven Dutch
Workshop BI/DWH AGILE TESTING Zwitserleven DutchWorkshop BI/DWH AGILE TESTING Zwitserleven Dutch
Workshop BI/DWH AGILE TESTING Zwitserleven DutchMarcus Drost
 
Starten met geautomatiseerd testen - SDN 2013
Starten met geautomatiseerd testen - SDN 2013Starten met geautomatiseerd testen - SDN 2013
Starten met geautomatiseerd testen - SDN 2013Delta-N
 
Continuous delivery met jenkins twist en puppet
Continuous delivery met jenkins twist en puppetContinuous delivery met jenkins twist en puppet
Continuous delivery met jenkins twist en puppetltebbens
 
DSD-NL 2014 - iMOD Symposium - 6. Reproduceerbaarheid en Kwaliteitsborging, W...
DSD-NL 2014 - iMOD Symposium - 6. Reproduceerbaarheid en Kwaliteitsborging, W...DSD-NL 2014 - iMOD Symposium - 6. Reproduceerbaarheid en Kwaliteitsborging, W...
DSD-NL 2014 - iMOD Symposium - 6. Reproduceerbaarheid en Kwaliteitsborging, W...Deltares
 
Asl bi sl metrics themasessie 2013 devops sogeti
Asl bi sl metrics themasessie 2013   devops sogetiAsl bi sl metrics themasessie 2013   devops sogeti
Asl bi sl metrics themasessie 2013 devops sogetiHarold van Heeringen
 
Presentatie Enterprise Architectuur - Agile en Essentie
Presentatie Enterprise Architectuur - Agile en EssentiePresentatie Enterprise Architectuur - Agile en Essentie
Presentatie Enterprise Architectuur - Agile en EssentieDanny Greefhorst
 
Agile, Continuous Delivery & DevOps in perspectief
Agile, Continuous Delivery & DevOps in perspectiefAgile, Continuous Delivery & DevOps in perspectief
Agile, Continuous Delivery & DevOps in perspectiefMaurice Roos
 
SODA - Overdacht van digitaal archief in 10 stappen (Renée Cambré, voormalig ...
SODA - Overdacht van digitaal archief in 10 stappen (Renée Cambré, voormalig ...SODA - Overdacht van digitaal archief in 10 stappen (Renée Cambré, voormalig ...
SODA - Overdacht van digitaal archief in 10 stappen (Renée Cambré, voormalig ...FARO
 
Presentatie dso leveranciersdag 17 november
Presentatie dso leveranciersdag 17 novemberPresentatie dso leveranciersdag 17 november
Presentatie dso leveranciersdag 17 novemberKING
 
Product risico analyse in de praktijk (2010) - Kees Blokland
Product risico analyse in de praktijk (2010) - Kees BloklandProduct risico analyse in de praktijk (2010) - Kees Blokland
Product risico analyse in de praktijk (2010) - Kees BloklandKees Blokland
 
Load En Stress Testers Te Slim Af Final
Load En Stress Testers Te Slim Af FinalLoad En Stress Testers Te Slim Af Final
Load En Stress Testers Te Slim Af FinalPlutonIT
 

Similar to OpenValue meetup January 2019 - Continuous performance - Load testing for developers with Gatling (20)

Sdb Presentatie
Sdb PresentatieSdb Presentatie
Sdb Presentatie
 
JavaLand 2017 - Pipeline as code
JavaLand 2017 - Pipeline as codeJavaLand 2017 - Pipeline as code
JavaLand 2017 - Pipeline as code
 
Scrum - hou grip op uw ontwikkelproces
Scrum - hou grip op uw ontwikkelprocesScrum - hou grip op uw ontwikkelproces
Scrum - hou grip op uw ontwikkelproces
 
ING : How top quality software and state-of-the-art technology leads to conti...
ING : How top quality software and state-of-the-art technology leads to conti...ING : How top quality software and state-of-the-art technology leads to conti...
ING : How top quality software and state-of-the-art technology leads to conti...
 
Coww 2.16 Presentatie Wim La Haye
Coww 2.16 Presentatie Wim La HayeCoww 2.16 Presentatie Wim La Haye
Coww 2.16 Presentatie Wim La Haye
 
Web applicatie van scratch
Web applicatie van scratchWeb applicatie van scratch
Web applicatie van scratch
 
BPUG Seminar 2014 Rik Marselis - effectief testen in agile
BPUG Seminar 2014 Rik Marselis - effectief testen in agileBPUG Seminar 2014 Rik Marselis - effectief testen in agile
BPUG Seminar 2014 Rik Marselis - effectief testen in agile
 
Hands-off performance testing - Twan Koot & Addy Zwiebel
Hands-off performance testing - Twan Koot & Addy ZwiebelHands-off performance testing - Twan Koot & Addy Zwiebel
Hands-off performance testing - Twan Koot & Addy Zwiebel
 
Workshop BI/DWH AGILE TESTING Zwitserleven Dutch
Workshop BI/DWH AGILE TESTING Zwitserleven DutchWorkshop BI/DWH AGILE TESTING Zwitserleven Dutch
Workshop BI/DWH AGILE TESTING Zwitserleven Dutch
 
Starten met geautomatiseerd testen - SDN 2013
Starten met geautomatiseerd testen - SDN 2013Starten met geautomatiseerd testen - SDN 2013
Starten met geautomatiseerd testen - SDN 2013
 
Continuous delivery met jenkins twist en puppet
Continuous delivery met jenkins twist en puppetContinuous delivery met jenkins twist en puppet
Continuous delivery met jenkins twist en puppet
 
DSD-NL 2014 - iMOD Symposium - 6. Reproduceerbaarheid en Kwaliteitsborging, W...
DSD-NL 2014 - iMOD Symposium - 6. Reproduceerbaarheid en Kwaliteitsborging, W...DSD-NL 2014 - iMOD Symposium - 6. Reproduceerbaarheid en Kwaliteitsborging, W...
DSD-NL 2014 - iMOD Symposium - 6. Reproduceerbaarheid en Kwaliteitsborging, W...
 
Asl bi sl metrics themasessie 2013 devops sogeti
Asl bi sl metrics themasessie 2013   devops sogetiAsl bi sl metrics themasessie 2013   devops sogeti
Asl bi sl metrics themasessie 2013 devops sogeti
 
Presentatie Enterprise Architectuur - Agile en Essentie
Presentatie Enterprise Architectuur - Agile en EssentiePresentatie Enterprise Architectuur - Agile en Essentie
Presentatie Enterprise Architectuur - Agile en Essentie
 
H6 Realisatiefase
H6 RealisatiefaseH6 Realisatiefase
H6 Realisatiefase
 
Agile, Continuous Delivery & DevOps in perspectief
Agile, Continuous Delivery & DevOps in perspectiefAgile, Continuous Delivery & DevOps in perspectief
Agile, Continuous Delivery & DevOps in perspectief
 
SODA - Overdacht van digitaal archief in 10 stappen (Renée Cambré, voormalig ...
SODA - Overdacht van digitaal archief in 10 stappen (Renée Cambré, voormalig ...SODA - Overdacht van digitaal archief in 10 stappen (Renée Cambré, voormalig ...
SODA - Overdacht van digitaal archief in 10 stappen (Renée Cambré, voormalig ...
 
Presentatie dso leveranciersdag 17 november
Presentatie dso leveranciersdag 17 novemberPresentatie dso leveranciersdag 17 november
Presentatie dso leveranciersdag 17 november
 
Product risico analyse in de praktijk (2010) - Kees Blokland
Product risico analyse in de praktijk (2010) - Kees BloklandProduct risico analyse in de praktijk (2010) - Kees Blokland
Product risico analyse in de praktijk (2010) - Kees Blokland
 
Load En Stress Testers Te Slim Af Final
Load En Stress Testers Te Slim Af FinalLoad En Stress Testers Te Slim Af Final
Load En Stress Testers Te Slim Af Final
 

OpenValue meetup January 2019 - Continuous performance - Load testing for developers with Gatling