Skip to content
Latchkey

Locust vs k6: CIにはどちらの負荷テストツールか?

LocustはPythonで負荷テストを記述し、分散workerモデルでスケールする。k6はJavaScriptを使い、軽量でCIネイティブなsingle binaryである。

LocustはPythonベースの負荷テスターで、ユーザー行動をコードで定義し、master/workerモデルでスケールし、ライブなweb UIを持つ。k6 (Grafana) はJavaScriptでスクリプトを書くGoバイナリで、低リソース使用量とCIのthresholdに最適化されている。

Locustk6
スクリプト言語PythonJavaScript
RuntimePythonGo (single binary)
スケールモデルMaster/worker分散Single binary (スケールにはk6 cloud)
ライブUIあり (web UI)CLI + Grafana
CIへの適合良好 (headless)非常に良好 (threshold)

CIにおいて

k6は第一級のCLI thresholdを備えたsingle binaryであり、CIでのpass/failのgatingを容易にし、リソース使用量を低く保つ。LocustはPythonチームに魅力的で - 挙動が素のPythonであり - workerを介して水平にスケールするため、非常に高い負荷に有用だが、そのmaster/workerのセットアップはCIのオーケストレーションを増やす。言語の好みと、負荷をどうスケールするつもりかで選ぶ。

CIで実行する

threshold (k6) またはassertion (Locust) でgateし、回帰でビルドが失敗するようにし、能力の高いrunnerで分散/高負荷プロファイルを実行する。負荷生成はリソースを多く消費する。より大きく高速なマネージドrunnerはrunnerあたりより多くの負荷を生成し、重い実行をより早く終える。

結論

Pythonチーム、または非常に高い負荷向けに分散workerモデルが必要: Locust。クリーンなCIのthresholdを備えた軽量なsingle binaryが欲しい: k6。CIではthreshold/assertionでgateし、生成する負荷に合わせてrunnerをサイジングする。

関連ガイド