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 scenario of load testing from E2E testing scenarios
Search
mackee
November 11, 2022
Programming
2
4.5k
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
PerlでつくるフルスクラッチWebAuthn/パスキー認証 / Demonstration of full-scratch WebAuthn/Passkey Authentication written in Perl
mackee
3
710
SRE定例やその辺の取り組みをアプリケーションエンジニア目線で語る / "Observe" about SRE Meeting by Application Engineer
mackee
0
1.6k
TinyGoで使えるORM sqllaの 紹介とTinyGoで使えるようにするための工夫
mackee
0
410
Go向けORM sqllaの紹介と JOINやUNIONを含んだクエリの扱い方
mackee
0
690
デプロイ今昔物語 〜CGIからサーバーレスまで〜 / The deployment technics
mackee
10
9.4k
じわじわとPerlからGoに移行しようとしている俺達のマイクロサービシーズの紹介 / The migrating to microservices in Go from Monolith in Perl
mackee
2
2.7k
Mojoliciousで書いて理解するhotwireの仕組み
mackee
0
4.7k
GraphQLサーバを作る苦しみと解決手法
mackee
16
9k
ChatBotの重いタスクをCircleCIに持っていってみた / How to move heavy tasks on ChatBot to CircleCI
mackee
1
4k
Other Decks in Programming
See All in Programming
25 Years of the JCP Program
ivargrimstad
0
1k
iOS / Android ネイティブ 実装アプリの Flutter 化事例
mthiroshi
0
650
品質が高いコードって何?Rev2.1
ickx
1
360
軽率にVue 3で リアルタイム3Dアプリを作れる ライブラリを作ってみた/vue-with-3d-app
drumath2237
3
1.1k
上手な探索的テストとその上達方法について
matsu802
1
430
オープンなデータ・ソフトウェアを活用した開発
404background
0
160
導入から5年が経って見えた Datadog APM 運用の課題
bgpat
1
480
プログラミングを楽しもう! / Enjoy Programming
chobishiba
1
680
TokyoR#111_ANOVA
kilometer
1
710
CSC308B Lecture 12
javiergs
PRO
0
100
「Hono遍歴」と「HonoXでブログ作成」
yasu551
0
170
document.write再考
brn
5
1.8k
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
223
17k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
185
15k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
11
1.4k
The Art of Programming - Codeland 2020
erikaheidi
40
12k
Design by the Numbers
sachag
274
18k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
6
930
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
56
13k
[RailsConf 2023] Rails as a piece of cake
palkan
21
3.8k
Writing Fast Ruby
sferik
619
59k
Designing on Purpose - Digital PM Summit 2013
jponch
109
6.4k
Gamification - CAS2011
davidbonilla
76
4.5k
Building a Scalable Design System with Sketch
lauravandoore
455
32k
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͔ͩΒΤϯτϦʔϙΠϯτ͚ͩݟͯҙຯ͕ͳ͍ͱͳΜͩͬͨͷ͔ • ΫΤϦΩϟογϡ͞Μɺࠓ·Ͱ͋Γ͕ͱ͏