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
E2Eテストから負荷試験シナリオを作ってみた / Why do we make a scena...
Search
mackee
November 11, 2022
Programming
3
5.9k
E2Eテストから負荷試験シナリオを作ってみた / Why do we make a scenario of load testing from E2E testing scenarios
PR TIMES x 面白法人カヤック合同勉強会
mackee
November 11, 2022
Tweet
Share
More Decks by mackee
See All by mackee
ワンバイナリWebサービスのススメ
mackee
10
7.8k
tanukistack ライブコーディング / tanukistack live-coding
mackee
0
100
range over funcの使い道と非同期N+1リゾルバーの夢 / about a range over func
mackee
0
640
perl for shell, awk and sed programmers
mackee
2
2.2k
今更GoのWebフレームワークを作ろうとしているワケ / Why am I trying to create a Go web framework now?
mackee
1
610
database/sqlでNullを扱う歴史とsql.Null[T]の登場 / sql.Null[T] history
mackee
0
500
マイクロサービス化を利用した Goへの移行事例
mackee
0
630
PerlでつくるフルスクラッチWebAuthn/パスキー認証 / Demonstration of full-scratch WebAuthn/Passkey Authentication written in Perl
mackee
3
4.5k
SRE定例やその辺の取り組みをアプリケーションエンジニア目線で語る / "Observe" about SRE Meeting by Application Engineer
mackee
0
1.9k
Other Decks in Programming
See All in Programming
DroidKnights 2025 - 다양한 스크롤 뷰에서의 영상 재생
gaeun5744
3
300
アンドパッドの Go 勉強会「 gopher 会」とその内容の紹介
andpad
0
250
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
41
27k
GraphRAGの仕組みまるわかり
tosuri13
7
440
イベントストーミングから始めるドメイン駆動設計
jgeem
4
860
複数アプリケーションを育てていくための共通化戦略
irof
10
4k
AWS CDKの推しポイント 〜CloudFormationと比較してみた〜
akihisaikeda
3
280
データの民主化を支える、透明性のあるデータ利活用への挑戦 2025-06-25 Database Engineering Meetup#7
y_ken
0
260
生成AIコーディングとの向き合い方、AIと共創するという考え方 / How to deal with generative AI coding and the concept of co-creating with AI
seike460
PRO
1
320
C++20 射影変換
faithandbrave
0
500
Gleamという選択肢
comamoca
6
740
Java on Azure で LangGraph!
kohei3110
0
160
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
YesSQL, Process and Tooling at Scale
rocio
173
14k
The Language of Interfaces
destraynor
158
25k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
53k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
700
How STYLIGHT went responsive
nonsquared
100
5.6k
A designer walks into a library…
pauljervisheath
206
24k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.6k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.8k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Six Lessons from altMBA
skipperchong
28
3.8k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Transcript
E2Eςετ͔Βෛՙࢼݧγφ ϦΦΛ࡞ͬͯΈͨ @mackee_w a.k.a macopy PR TIMES x ໘ന๏ਓΧϠοΫ߹ಉษڧձ 2022-11-11
19:00
@macopy • ໘ന๏ਓΧϠοΫ eεϙʔπࣄۀ෦ TonamelαʔόαΠυςοΫϦʔυ • Perlେ͖ Go͖ • ISUCON11
༏উ • ISUCON12 ༧બ ग़ • ࠷ۙϋϚ͍ͬͯΔϒΩιΠνϡʔόʔ
Tonamelͷ
ߏ
Client(Nuxt)͕GraphQLΛൃߦͯ͠
֤ϚΠΫϩαʔϏε͕GraphQLΛड͚Δ
ൃ ෛՙࢼݧΛ͍ͨ͠
ͦͷଞ۩ମతͳత
ෛՙࢼݧΛΔͨΊʹ άοζΛ࡞ͬͯΒ͏
εςʔδϯάڥͷߏங
ຊ൪DB͔Βͷίϐʔ https://techblog.kayac.com/automate-initializing-databases-for-staging
k6ಋೖ
thanks! @ebi-yade
ͯ͞ɺͲ͏ͬͯγφϦΦΛॻ͜͏͔
՝: TonamelSPA(ͳϖʔδ͕ଟ͍)
୯७ʹϖʔδΛfetch͢Δͱ NuxtͷΤϯτϦʔϙΠϯτͷHTML͕ ฦͬͯ͘Δ͚ͩ
“ٖࣅతʹຊ൪ΞΫηεʹ͍ۙ"
ҙ: ࠷ॳ͔Β͜ΕΛࢦ͞ͳ͍Ͱʂ • ͜Ε is ʮٖࣅతʹຊ൪ΞΫηεʹ͍ۙʙʯ • ·ͣ `/` ͱ͔ΛF5࿈ଧ͢ΔΑ͏ͳ୯७ͳγφϦΦΛ࡞Γ·͠ΐ͏
• Ͱͳ͍ͱ͍ͭ·ͰܦͬͯϕϯνϚʔΧʔࣗମͷڍಈ֬ೝ͕Ͱ͖ͳ͍ • ͜ͷ࣌Ͱ `/` SPAͰͳ͍ϖʔδͷෛՙࢼݧͬͯΈ͍ͯΔ • ͦͯ͠”ऑ”ݟ͚͍ͭͯΔ…͕͜Ε·ͨผͷ
࡞ઓ1: ۪ʹGraphQLΫΤϦΛॻ͍͍ͯ͘
ײ: େม • ʮ͜Εɺ͔ͯ͠͠ΫϥΠΞϯτଆͷίʔυΛ࠶࣮ͯ͠ͳ͍ʁʁʯ • ΫΤϦ͋Δఔྲྀ༻ग़དྷΔͷͷ(k6JSͳͷͰ)ɺॲཧͱ͔ίϐ ϖ͕͍͠ͷͰΫϥΠΞϯτͷڍಈΛಡΈͳ͕Βॻ͍͍͔ͯ͘͠ແ͍ • ͋ΔఔॲཧΛؙΊΔ(ఘΊΔʁ)ʹͯ͠ɺՃݮ͕͍͠
࡞ઓ2: xk6-browser https://k6.io/docs/javascript-api/xk6-browser/
ʮϒϥβΛ͍ͬͺ͍ฒͯΞΫηε ͠·͘Ε͍͍͡ΌΜʯ
݁Ռ: εέʔϧ͠ͳ͍, ҆ఆͤͣ • ͦͦChromium͔ͩΒͶ • xk6-browserͷ͍ํ͕ѱ͍ͷ͔ɺ҆ఆ͍ͯ͠ͳ͍ͷ͔ɺΤϥʔ͕ग़ ·͘Δ
ʔͲ͏ͨ͠ͷ͔
har-to-k6 https://github.com/grafana/har-to-k6
ϒϥβͷϩά͔Βk6ͷγφϦΦʹม͢Δ܅ • ൃʮϒϥβ͕ॏ͍ ͳΒϒϥβͰϖʔδ ݟͨͱ͖ͷڍಈ͔Βγ φϦΦʹ͢Ε͍͍Μ ͡Όͳ͍ʁʯ • .HARϑΝΠϧ͔Βk6γ φϦΦ(JavaScript)ม
͢Δެࣜπʔϧ
͜ΕͰ՝ײ • ϑϩϯτΤϯυଆͷڍಈʑΊ·͙Δ͘͠มΘͬͯ͠·͏ • ෛՙࢼݧͱͯ͠ɺಛఆͷύε(=ػೳ)ʹΞΫηεͨ͠ͱ͖ͷϒϥβ͔Βͷ ϦΫΤετͷڍಈΛ࠶ݱ͍ͨ͠ • HARΛੜ͢ΔͨΊʹ࠷৽ͷϑϩϯτΤϯυͷڍಈΛ͔͚ͬΔͨΊʹ ChromeͰϙνϙν͢Δͷ͔ʁ •
ਓྗͷਖ਼֬ੑɾਓྗͷखؒ => ໘͔͘͞͞Β͘ΔෛՙࢼݧΕ
.HARΛ࡞ΔͷࣗಈԽ͠·͠ΐ͏
Έ
PlaywrightͰHARΛు͘ίʔυ
݁Ռ: ͍͍ײ͡ͷෛՙΛ͔͚ΒΕͨ
ͦͷଞͷ • HARϕʔεγφϦΦͰଞͷυϝΠϯը૾ʹfetch͠ͳ͍Α͏ʹ͢ΔϑΟϧλ • εςʔδϯάڥͷೝূΛϕϯνϚʔΧʔ͚ͩճආ͢Δํ๏ • AuroraͷPerformance Insights͕ศར, ClusterͷҰ࣌ఀࢭศར •
OGPͰmeta tagʹେձใΛຒΊࠐΜͰ͍Δ͕ͦΕ͕ॏͯ͘໘ന͍ʢ໘ന͘ͳ͍ʣ • SPA͔ͩΒΤϯτϦʔϙΠϯτ͚ͩݟͯҙຯ͕ͳ͍ͱͳΜͩͬͨͷ͔ • ΫΤϦΩϟογϡ͞Μɺࠓ·Ͱ͋Γ͕ͱ͏