【ケーシックス】

k6 とは?

公開:
💡 サーバーに「満員電車」をシミュレーションして耐久力を測るツール
📌 このページのポイント
k6 負荷テストの仕組み 仮想ユーザー VU1 VU2 VU3 ... VU N JSシナリオ で行動定義 Go製で高速 大量 リクエスト 対象サーバー API Webアプリ 負荷に耐えられる? テスト結果 レスポンス: 120ms p95: 450ms p99: 890ms エラー率: 0.2% RPS: 1,500 thresholds 合格基準を自動判定
k6 負荷テストの仕組み
ひよこ ひよこ
k6って何をするツールなの?
ペンギン先生 ペンギン先生
Webサービスやアプリに大量のアクセスを送り込んで、どのくらいの負荷に耐えられるかを測るツールだよ。イベント開催時にサーバーが落ちないかを事前に確認できるんだ
ひよこ ひよこ
どうやって使うの?
ペンギン先生 ペンギン先生
JavaScriptでシナリオを書くんだ。「100人のユーザーが同時にログインして商品を検索する」みたいな行動パターンをコードで表現して、k6 runコマンドで実行するよ
ひよこ ひよこ
他の負荷テストツールと比べてどこがいいの?
ペンギン先生 ペンギン先生
Goで作られているからとても軽量で、1台のマシンでも数千〜数万の仮想ユーザーをシミュレートできるよ。JMeterみたいにGUIは必要なくて、コードベースだからGitで管理してCIに組み込みやすいのも強みだね
ひよこ ひよこ
Grafanaと連携できるって聞いたけど、どういうこと?
ペンギン先生 ペンギン先生
テスト結果をGrafanaダッシュボードにリアルタイムで表示できるんだ。レスポンスタイムの推移やエラー率をグラフで見ながら、ボトルネックがどこにあるかを視覚的に分析できるよ
ひよこ ひよこ
実際の負荷テストってどんな観点で見るの?
ペンギン先生 ペンギン先生
いい質問だね。p95やp99と呼ばれるパーセンタイル値が重要だよ。平均レスポンスタイムが速くても、100回に1回だけ極端に遅いリクエストがあるとユーザー体験が悪くなる。k6ではthresholdsという機能で「p95が500ms以下」のような合格基準を設定して、CI上で自動判定できるんだ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「k6」って出てきたら「JSで書ける軽量な負荷テストツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「k6」 = ケーシックス
💬 もともとはLoadImpactという会社のツールで、ブランド変更でk6になったよ。その後Grafana Labsに買収されてGrafana k6として開発が続いているんだ
← 用語集にもどる