【ケーシックス】

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として開発が続いているんだ
← 用語集にもどる