【ロカスト】
Locust とは?
最終更新:
💡 Pythonで行動を定め、負荷と応答を測る
Pythonで仮想ユーザーの行動を記述する負荷テストツール。HTTPリクエストなどを送って応答時間や失敗を集計し、WebUIやコマンドラインで実行できます。分散実行にも対応しますが、仮想ユーザー数と毎秒のリクエスト数は同じではありません。
📌 このページのポイント
Locustは何を測るツール?
Webページを開くブラウザと同じ?
画面で毎秒のリクエスト数を設定する?
基本の設定は仮想ユーザー数と、そのユーザーを毎秒何人増やすかを表すspawn rateだよ。spawn rateはリクエスト毎秒数のRPSではない。RPSはタスク内の通信回数、応答時間、タスク後の待ち時間などでも変わる。ユーザーを増やしても、対象が混雑するとRPSが増えない場合があるね。
複数台で実行するとどうなるの?
分散モードではマスターが開始・停止を指示し、統計をまとめる。ワーカーが仮想ユーザーを動かして対象へ通信する。マスター自身は仮想ユーザーを実行しないんだ。発生できる負荷はCPUやシナリオなどに依存するので、固定の人数が必ず動くとは言えないよ。
失敗が0なら、サービスは正しく動いた?
Pythonに慣れていたら、これで決まり?
候補にはなるけれど、対象のプロトコル、シナリオ、必要な負荷と運用に合うかを比べよう。WebUIを使わない実行もできる。試験は許可された環境で、開始・終了条件と負荷の上限を決めて行うことが必要だよ。
もっと詳しく知りたい人へ
Windowsでも、--processesで複数プロセスを起動できる?
公式資料では--processesはforkに依存し、Windowsでは動作しません。分散モード自体とこの補助オプションは別です。環境に応じてマスターとワーカーを個別に起動するなど、対応する方法を確認します。
📖 おまけ:英語の意味
「Locust」 = イナゴ・バッタ
💬 英単語のlocustはイナゴやバッタを表します。ツール名から性能や、再現できるユーザー数の保証を読み取るものではありません。