ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

【python】Locust で api の負荷テストを行ってみる

シンプルな UI で初心者にもおすすめということで、Locust というツールを使って api の負荷テストを行ってみました。

Locust

オープンソースの負荷テストツールで、api の負荷テストなどを行えるツールです。
イナゴのように、大量発生したリクエストをどれだけ対処できるか...といった感じでしょうか。

特徴

  • Pythonで書かれた負荷テストツールで、シナリオの作成がPythonスクリプトで行えるため、柔軟にシナリオをカスタマイズできます。
  • 分散負荷テストにも対応しているため、大規模なテストを実行したい場合にも向いています。

インストール

$ pip install locust

** テスト

作成

locustfile.py というファイルを作成し、以下の内容を追加します。

from locust import HttpUser, task


class SampleApi(HttpUser):

    @task(1)
    def task_a(self):
        # requestのモジュールと同じ書き方でリクエストができます
        self.client.get('/')
実行

このテストを実行し、Web UI を立ち上げてアクセスします。

$ locust -f locustfile.py
[2024-10-29 18:24:54,605] xxxxxxxx/INFO/locust.main: Starting Locust 2.32.0
[2024-10-29 18:24:54,606] xxxxxxxx/INFO/locust.main: Starting web interface at http://0.0.0.0:8089

Web UI

パラメータ設定

パラメータを設定します。

  • Number of users (peak concurrency): 同時ユーザ数(最大)
  • Ramp Up (users started/second): 1秒間でのユーザ増加数
  • Host: リクエスト先


結果