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
山田哲也
October 20, 2023
960
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
820
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
The Pragmatic Product Professional
lauravandoore
37
7.4k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
630
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Google's AI Overviews - The New Search
badams
0
1.1k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
400
The Language of Interfaces
destraynor
162
27k
sira's awesome portfolio website redesign presentation
elsirapls
0
320
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
690
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
160
Embracing the Ebb and Flow
colly
88
5.1k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
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