Locustのインストール&設定手順。Pythonで負荷試験をしよう!

目次

Locustとは何か?

  • Jmetarのような負荷試験ツール
  • 試験シナリオはPythonで書くことができてJmetarよりもシンプルに準備ができる
  • 実行間隔や並列度を簡単に設定して実行することができる
  • レポート機能やリアルタイム分析が機能としてある
  • Webのグラフィカルインターフェースが付いており直感的な操作が可能

Locastのインストール

Pythonがインストールされている前提です。

Locastは以下のコマンドでインストールできます。

python -m pip install locustio

ただ負荷試験用サーバを用意することは稀だと思います。

なので今回は負荷試験用Dockerコンテナ群を用意したいと思います。

docker-compose.yml

docker-compose.ymlは以下のように記述します。

version: '3'

services:
  master:
    image: locustio/locust
    ports:
     - “8089:8089”
    volumes:
      - ./:/mnt/locust
    command: -f /mnt/locust/locustfile.py –master -H http://master:8089


  worker:
    image: locustio/locust
    volumes:
      - ./:/mnt/locust
    command: -f /mnt/locust/locustfile.py –worker –master-host master

masterとworkerコンテナを作成します。Dockerhubにimageは登録されているのでそのままPullします。

locustfile.pyについては後述します。

locustfile.py(シナリオ記述ファイル)

locustfile.pyにシナリオを記述します。

from locust import HttpUser, task

class HelloWorldUser(HttpUser):
    @task
    def hello_world(self):
        self.client.get("/")

今回はテスト対象URLのルート”/”にGETリクエストをするように書きました。

起動と負荷試験手順

起動コマンド

docker-compose up --scale worker=4

引数のworkerは並列度に応じて増やしてください。最初は4ぐらいでOKです。

試験の実行方法

http://localhost:8089にアクセスすると以下の画面に表示されます。

  • number of usersで接続ユーザ数を設定
  • Spawn rateで増加するuserの速度を設定
  • Hostで接続するためのURLを設定

設定後にStart swarmingで測定を開始できます。

以下の画面ではテストが開始されました。

参考

  • システム開発、アプリ開発
  • マッチングアプリ開発
  • インフラ構築支援等、なんでもご相談ください。
よかったらシェアしてね!
  • URLをコピーしました!
目次