Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Gatling : Load Testing like a King
Search
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
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
Forza Horizon 6 のテレメトリ機能で 自動運転に使えそうな学習データを集める話
henjin0
0
170
PLATEAU で バーチャル花火大会
tatsuya1970
0
150
同じWAFが、攻撃の“形”は弾く── 正当な“形”の不正は通す
kuroneko13
0
170
老害フォレンジッカーはAI羊の夢を見るか?
tadmaddad
0
320
変化の早いClaude Codeを 書籍に落とし込む
oikon48
7
1.4k
Agent 時代の Kaggle 展望 / kaggle-in-the-agentic-era
upura
1
710
ガバメントクラウドでのランサムウェア対策
techniczna
2
1.2k
Data Hubグループ 紹介資料
sansan33
PRO
0
3.2k
Master Dataグループ紹介資料
sansan33
PRO
1
4.8k
MIRU 2026 チュートリアル
keisuke198619
0
900
20分でわかるセキュアAPI
nwiizo
2
260
今こそ聞きたいソフトウェア設計 ドメイン駆動設計再入門
masuda220
PRO
17
7.2k
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
72
12k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
370
The Language of Interfaces
destraynor
162
27k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.2k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.9k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
440
Evolving SEO for Evolving Search Engines
ryanjones
0
250
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
460
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
260
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
350
Transcript
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