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
6k
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.9k
tanukistack ライブコーディング / tanukistack live-coding
mackee
0
110
range over funcの使い道と非同期N+1リゾルバーの夢 / about a range over func
mackee
0
820
perl for shell, awk and sed programmers
mackee
2
2.4k
今更GoのWebフレームワークを作ろうとしているワケ / Why am I trying to create a Go web framework now?
mackee
1
790
database/sqlでNullを扱う歴史とsql.Null[T]の登場 / sql.Null[T] history
mackee
0
680
マイクロサービス化を利用した Goへの移行事例
mackee
0
810
PerlでつくるフルスクラッチWebAuthn/パスキー認証 / Demonstration of full-scratch WebAuthn/Passkey Authentication written in Perl
mackee
3
5k
SRE定例やその辺の取り組みをアプリケーションエンジニア目線で語る / "Observe" about SRE Meeting by Application Engineer
mackee
0
2k
Other Decks in Programming
See All in Programming
Comparing decimals in Swift Testing
417_72ki
0
170
PHPカンファレンス関西2025 基調講演
sugimotokei
6
1.1k
Introduction to Git & GitHub
latte72
0
110
Constant integer division faster than compiler-generated code
herumi
2
590
STUNMESH-go: Wireguard NAT穿隧工具的源起與介紹
tjjh89017
0
360
React 使いじゃなくても知っておきたい教養としての React
oukayuka
18
5.6k
バイブコーディング × 設計思考
nogu66
0
110
コーディングは技術者(エンジニア)の嗜みでして / Learning the System Development Mindset from Rock Lady
mackey0225
2
430
Scale out your Claude Code ~自社専用Agentで10xする開発プロセス~
yukukotani
9
1.9k
あなたとJIT, 今すぐアセンブ ル
sisshiki1969
1
620
LLMは麻雀を知らなすぎるから俺が教育してやる
po3rin
3
2.1k
MCPで実現できる、Webサービス利用体験について
syumai
7
2.5k
Featured
See All Featured
Bash Introduction
62gerente
614
210k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6k
How STYLIGHT went responsive
nonsquared
100
5.7k
Facilitating Awesome Meetings
lara
54
6.5k
The World Runs on Bad Software
bkeepers
PRO
70
11k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
800
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
183
54k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
880
Documentation Writing (for coders)
carmenintech
73
5k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
760
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
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͔ͩΒΤϯτϦʔϙΠϯτ͚ͩݟͯҙຯ͕ͳ͍ͱͳΜͩͬͨͷ͔ • ΫΤϦΩϟογϡ͞Μɺࠓ·Ͱ͋Γ͕ͱ͏