Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Gatling : Load Testing like a King
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
mestachs
May 09, 2014
Technology
19k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Gatling : Load Testing like a King
Gatling and rails app
mestachs
May 09, 2014
Transcript
18 slides
Load Testing like a
None
irb(main):017:0> gatling.load_test(rails_app) TypeError: can't convert Scala into Ruby from (irb):16:in
`load_test' from (irb):16 from bin/irb:12:in `<main>'
a DSL emulates real user behaviour val scn = scenario("Login")
.exec(http("My website") .get("/login") .headers(headers_1) .check( regex("""<meta content="(.*?)"name="csrf-token">""") .saveAs("auth_token")) .exec(http("Login") .post("/login") .headers(headers_5) .param("csrf-token", "${auth_token}") .param("username", "xxxx"))
None
Scalable Engine : Not a thread per user Actor based
concurrency Java 7 Asynchronous Good GC NIO framework
Executive summary
Average & StdDev : never again ! average of 1.2
seconds and standard deviation of 0.6 seconds
Average & StdDev : never again ! average of 1.2
seconds and standard deviation of 0.6 seconds Unhappy users are here
None
None
Gatling as a service
Root cause analysis
Need more data Infrastructure monitoring CloudWatch, collectd.org,... profiling/instrumentation/sampling in your
code or through agent à la NewRelic, home made with statsd,...
Query missing indexes select * from db select n+1 deadlock,
missing/bad cache Resource limits process / thread / connections pool garbage collection / network resource leak / cpu starvation Latency network external api rate limit isolate services
Opensource Nice DSL to emulates real user behaviour Scalable engine
Great reports/metrics by default C I - able Available “As a Service”
More on the subject https://flood.io/blog/13-stress-testing-jmeter-and-gatling https://flood.io/blog/14-getting-started-with-gatling https://flood.io/blog/27-socket-io-and-websockets-with-gatling http://mestachs.wordpress.com/2012/03/31/performance-when-average-is-not-enough/ http://gatling-tool.org/cheat-sheet/ http://maxdemarzi.com/2013/02/14/neo4j-and-gatling-sitting-in-a-tree-performance-t-e-s-t-ing/
http://laurent.bristiel.com/getting-started-with-gatling-for-stress-test/ https://github.com/maxdemarzi/neo_permissions/blob/master/performance/src/test/resources/simulations/RandomPermissions.scala#L18 https://github.com/excilys/gatling-hands-on/blob/master/gatling-hands-on-demo/src/test/scala/computerdatabase/Step10.scala https://wiki.jenkins-ci.org/display/JENKINS/Gatling+Plugin http://puppetlabs.com/blog/puppet-gatling-and-jenkins-together http://briancain.herokuapp.com/projects/puppetgatling http://blog.newrelic.com/2013/01/22/understanding-new-relic-queuing/ http://www.webperformance.com/library/tutorials/CalculateNumberOfLoadtestUsers/ http://www.slideshare.net/ZeroTurnaround/stephane-landelleblastyourappwithgatling https://twitter.com/GatlingTool http://blog.roddet.com/2013/06/gatling2-new-inject-api/
More on the subject http://jsebfranck.blogspot.be/2013/09/gatling-dynamic-parameters-example.html http://www.igvita.com/2014/03/26/why-is-my-cdn-slow-for-mobile-clients/ http://i.imgur.com/k0t1e.png http://www.eecs.berkeley.edu/~rcs/research/interactive_latency.html
More Decks by mestachs
See All by mestachs
Ansible - Tighten your quality feedback loop
mestachs
1
21k
Betatech - Security for Dummies
mestachs
2
14k
techtalks-001-how-do-you-puppet
mestachs
1
190
How do you Puppet ?
mestachs
3
17k
Other Decks in Technology
See All in Technology
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
17
120k
常時稼働エージェントの作り方(Claude公式ブログを資料化)
minorun365
PRO
11
19k
AWS Client VPNの設定でハマったポイントとその過程での気づき
amarelo_n24
0
160
20261113_JAWS_Osaka
takuyay0ne
0
510
変更差分を読むために環境を整備しよう
pipepasta
1
340
あの日、見つかっていなかったらどうなっていたか
kazzpapa3
2
220
LLM 基盤と kagent v0 を全部 k8s に入れてみた / Deploy both LLM and kagent v0 in k8s
kota2and3kan
0
220
さようならSSH鍵、こんにちはゼロトラスト ― AIフレンドリーで快適な自宅鯖SSH
atalie2m
5
2k
SSFの現在地 ― CAEP/RISCからAI Identityへ
oidfj
0
440
「任されビリティ」で引き受けて「よしなりてぃ」に頼らず任せる / Accept tasks with "makasarebility" and hand them over without relying on "yoshinarily"
pauli
0
640
Biohub - Cell Tracking During Development 5th place solution
rist
0
160
The Author Pays
hiccupps
0
230
Featured
See All Featured
Crafting Experiences
bethany
1
440
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.8k
Faster Mobile Websites
deanohume
310
32k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2.1k
Raft: Consensus for Rubyists
vanstee
143
7.9k
Become a Pro
speakerdeck
PRO
31
6.4k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
121
130k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
2
520
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.5k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Paper Plane (Part 1)
katiecoart
PRO
3
12k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
350