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
k6で負荷試験をやってみた話
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
山田哲也
October 20, 2023
970
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
k6で負荷試験をやってみた話
山田哲也
October 20, 2023
More Decks by 山田哲也
See All by 山田哲也
メール配信基盤をAmazon SESに移行した話
techi
1
830
Featured
See All Featured
Ruling the World: When Life Gets Gamed
codingconduct
0
320
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
320
Designing for Timeless Needs
cassininazir
1
470
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
570
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
970
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
490
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
Six Lessons from altMBA
skipperchong
29
4.5k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
370
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Documentation Writing (for coders)
carmenintech
77
5.5k
Accessibility Awareness
sabderemane
1
200
Transcript
k6で負荷試験をやってみた話 株式会社リーディングマーク 山田 哲也
山田哲也 株式会社リーディングマーク所属 SREエンジニア、技術広報 X(旧Twitter):@techi_dev
None
k6とは
k6とは オープンソースの負荷試験ツールで 開発元は可視化ツールで有名なGrafana Labs 使い方はJavascriptでテストコードを書いてCLIで実行 k6 の単一インスタンスで 30,000 ~ 40,000
人の仮想的な 同時ユーザー処理をテストできる(らしい)
サービス k6 JMeter 特徴 コードベース (JavaScriptで記述) 2017年リリース Go製(Github★数: 21.8k) HTTP/HTTPS/WebSocket/gRPCをサポート
Grafana, Prometheusなどとの統合が簡単 GUIベース (CLIも利用可能) 2001年リリース Java製(Github★数: 7.4k) 複数のプロトコルをサポート プラグイン、サードパーティのツールとの 統合が充実 利点 コードベースなのでGitやCICDが活用できる クラウドサービスとの連携が簡単(特に Grafana Cloud) プラグインによる機能拡張でRDBMSなどの テストも可能 GUIによるシナリオ作成 事例が豊富 グラフィカルなレポート作成 プラグインによる機能拡張 k6とJMeterの比較
サービス k6 JMeter 特徴 コードベース (JavaScriptで記述) 2017年リリース Go製(Github★数: 21.8k) HTTP/HTTPS/WebSocket/gRPCをサポート
Grafana, Prometheusなどとの統合が簡単 GUIベース (CLIも利用可能) 2001年リリース Java製(Github★数: 7.4k) 複数のプロトコルをサポート プラグイン、サードパーティのツールとの 統合が充実 利点 コードベースなのでGitやCICDが活用できる クラウドサービスとの連携が簡単(特に Grafana Cloud) プラグインによる機能拡張でRDBMSなどの テストも可能 GUIによるシナリオ作成 事例が豊富 グラフィカルなレポート作成 プラグインによる機能拡張 k6とJMeterの比較 使ってみた感想 GUIよりコードの方がシナリオの内容を把握しやすい k6の方がレスポンスの値を使いまわしやすい
使ってみる
テスト内容 「test.k6.ioにアクセスして1秒待機」を 10ユーザーが30秒間に可能な限り実行 script.jsとして保存 k6 run script.jsを実行 vus: 仮想ユーザー数 duration:
実行時間 k6を使ってみる
None
メトリクス
メトリクス 説明 vus 現在のアクティブな仮想ユーザーの数 iterations VU が JS スクリプトを実行する合計回数 http_reqs
k6 が生成した HTTP リクエストの合計数 http_req_duration リクエストの合計時間 http_req_blocked リクエストを開始するまでにブロックされた時間 (空き TCP 接続スロットを待機してい る時間) http_req_waiting リモート ホストからの応答を待機するのに費やした時間 (「最初のバイトまでの時間」 または「TTFB」とも呼ばれます) k6で確認できるメトリクス(一部)
段階的なユーザー数の調整 ヘッダーやボディの指定 条件式を評価してリザルトに表示
Grafana Cloudとの統合
None
Grafana Cloudと連携すると テストコードの作成を補助するツールの利用や テスト結果の可視化ができるようになる(freeプランあり)
None
None
ブラウザの操作を記録して テストコードを自動生成してくれるツール ※Grafana Cloudの登録が必須
Thank You