Skip to content
Latchkey

k6 vs Gatling: CIにはどちらのload testingツールか

どちらもコードファーストのload testerで、k6はJavaScriptを使い軽量、GatlingはScala/Javaを使い高スループットのシミュレーションと豊富なレポートを備えます。

k6(Grafana)はJavaScriptでスクリプトを書くGoベースのload testerで、低いリソース使用とCIに最適化されています。GatlingはScala(またはJava/Kotlin)のDSLシミュレーションを持つJVMベースのツールで、高スループットと詳細なHTMLレポートで知られます。

k6Gatling
スクリプト言語JavaScriptScala / Java / Kotlin DSL
ランタイムGo(軽量)JVM
レポートCLI + Grafana豊富なHTMLレポート
CIへの適合優秀(threshold)良好(CLI、レポート)
最適な用途開発者所有のJSテストJVMチーム、高スループット

CIでは

k6はより軽量でJavaScriptを使うため、開発者の障壁を下げ、スクリプトをアプリのコードの近くに保ちます。thresholdによりCIのpass/failがきれいになります。Gatlingは高スループットと優れたHTMLレポートを提供し、JVMとScala/Java DSLに慣れたチームに適合します。どちらもCIから実行され、選択はしばしばチームの言語の好みとレポートのニーズに従います。

CIで実行する

リグレッションがbuildを失敗させるようパフォーマンスのthresholdにgateし、重いシミュレーションを能力のあるrunnerで実行します。負荷生成はリソース集約的です。より大きく高速なmanaged runnerはrunnerあたりより多くの負荷を生成し、大きなシナリオをより早く終えます。

結論

軽量でJavaScript、CIネイティブなload testが欲しいなら: k6。高スループット、豊富なレポート、JVMのDSLが欲しいなら: Gatling。CIでthresholdにgateし、生成する必要のある負荷に合わせてrunnerをサイズします。

関連ガイド