Skip to content
Latchkey

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

k6はJavaScriptでスクリプトを書き、無駄のないGoバイナリとして動作します。Locustは扱いやすい分散モデルとともにPythonでスクリプトを書きます。

k6(Grafana製)は負荷テストをJavaScriptで書き、threshold内蔵の単一で効率的なGoバイナリとして動作します。LocustはテストをPythonで書き、primary/workerモデルでスケールし、リアルタイムのWeb UIを提供します。

k6Locust
言語JavaScriptPython
ランタイム単一のGoバイナリPythonプロセス
スケーリングモデル単一バイナリ、高いVU効率primary/workerの分散
リソース効率高い良好(Pythonコードに依存)
Threshold / pass-fail内蔵コードでカスタム

CIでは

k6はCIに自然に適合します。軽量なバイナリ、リグレッション時にビルドを失敗させる内蔵のthreshold、そして仮想ユーザーあたりの低オーバーヘッドを備えています。Locustは、チームがPythonを好み、複雑なユーザー動作を本物のコードで表現したい場合に魅力的です。分散型のprimary/workerモデルでマシンをまたいでスケールし、Web UIはオーサリング中に役立ちます。Python中心のチームにとって、Locustはすべてを1つの言語に収められます。

パイプライン向けの選び方

JavaScriptのテスト、最小のオーバーヘッド、内蔵のpass/fail threshold: k6。コードで定義した動作と分散モデルを求めるPython-firstなチーム: Locust。どちらもCIでheadlessに実行し、結果をartifactとしてエクスポートできます。

結論

無駄がなくJSベースでthreshold駆動のCI負荷テスト: k6。コードで定義したユーザー動作と容易な分散を求めるPython-firstなチーム: Locust。言語の好みとスケーリングモデルで選びましょう。

関連ガイド