【ガトリング】

Gatling とは?

💡 サーバーに弾丸のようなリクエストを撃ち込む「ガトリング砲」
📌 このページのポイント
Gatling と他ツールの比較 JMeter GUI操作 スレッドベース メモリ消費大 Gatling Scala/Java DSL 非同期(Netty) 美しいHTMLレポート k6 JavaScript Go製で軽量 CLI特化 Gatling HTMLレポート ■ <200ms (66%) ■ 200-800ms (20%) ■ >800ms (7%) KO (7%)
Gatling と他の負荷テストツールの比較
ひよこ ひよこ

Gatlingってどういうツールなの?

ペンギン先生 ペンギン先生

WebアプリケーションAPIに大量のリクエストを送って、性能をテストするツールだよ。名前のとおりガトリング砲みたいにリクエストを連射して、サーバーがどこまで耐えられるか調べるんだ

ひよこ ひよこ

k6やJMeterとはどう違うの?

ペンギン先生 ペンギン先生

JMeterはGUIで操作する古参ツール、k6JavaScriptで書く軽量ツールだね。GatlingはScalaのDSLでシナリオを書くのが特徴で、特にJava/Scalaプロジェクトとの相性が抜群なんだ。レポートの美しさも群を抜いているよ

ひよこ ひよこ

Scalaを知らなくても使えるの?

ペンギン先生 ペンギン先生

Gatling 3.8からはJava DSLも公式サポートされたから、Javaだけで書けるよ。ScalaのDSLもテスト用に最適化されているから、Scala自体を深く知らなくても直感的に書けるんだ

ひよこ ひよこ

レポートがきれいって聞いたけど、どんな感じなの?

ペンギン先生 ペンギン先生

テスト実行後にHTMLファイルが自動生成されて、レスポンスタイムの分布グラフ、リクエスト数の推移、パーセンタイル分析などが一目で分かるんだ。追加ツールなしでここまでのレポートが出るのはGatlingの大きな強みだよ

ひよこ ひよこ

大規模なテストをするときはどうするの?

ペンギン先生 ペンギン先生

Gatling Enterprise(旧Gatling FrontLine)という商用版を使うと、複数マシンに分散してテストを実行できるよ。OSS版でも非同期I/O(Nettyベース)で動いているから、1台でもかなりの負荷を生成できる。実はJMeterがスレッドベースでメモリを大量に消費するのに対し、Gatlingはアクターモデルで効率的にリソースを使うから、同じマシンスペックでも数倍のユーザーをシミュレートできるんだ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Gatling」って出てきたら「Java/Scala向けの高機能な負荷テストツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Gatling」 = ガトリング砲(連射銃)
💬 名前の由来はリチャード・ガトリングが発明した連射砲。大量のリクエストを連射するイメージにぴったりだよ
← 用語集にもどる