気軽に楽しくプログラムと遊ぶ

自分が興味があってためになるかもって思う情報を提供しています。

Pythonの負荷テストツール Locust

Pythonで負荷テストコードを記載するLocustについて記載します。

特徴

  • シナリオを Python で記述
  • 分散&スケーラブル
  • Web ベース管理画面
  • 高いカスタマイズ性

本家サイト

動かしてみる

テストケース

from locust import HttpUser, TaskSet, task, between, constant

class UserBehavior(TaskSet):
    @task(1)
    def profile(self):
        self.client.get("/sample", verify=False) # パスにはプロトコルやホストは記載しない

class WebsiteUser(HttpUser):
    tasks = {UserBehavior:1}
    min_wait = 5000 #タスクの実行間隔はmin_waitとmax_waitの間のランダム値となる
    max_wait = 15000 # 上書き時に記述。デフォルトは min_wait=500, max_wait=1500 単位はミリ秒

起動

locust
# 以下の省略版
#  locust -f ./locustfile.py

http://localhost:8089でWeb UIにアクセス可能

f:id:tamata78:20210818184631p:plain

参考サイト