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
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
Ethics towards AI in product and experience design
skipperchong
2
360
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
410
Testing 201, or: Great Expectations
jmmastey
46
8.3k
The Cult of Friendly URLs
andyhume
79
7k
Site-Speed That Sticks
csswizardry
13
1.5k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
570
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
180
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
Building the Perfect Custom Keyboard
takai
2
860
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
840
Git: the NoSQL Database
bkeepers
PRO
432
67k
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