Pythonで負荷テストコードを記載するLocustについて記載します。
特徴
- シナリオを Python で記述
- 分散&スケーラブル
- Web ベース管理画面
- 高いカスタマイズ性
本家サイト
- Github:GitHub - ktanakaj/locust-example: Example scripts for Locust
- Github/example:locust/examples at master · locustio/locust · GitHub
- ドキュメント:Locust Documentation — Locust 2.1.0 documentation
動かしてみる
テストケース
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にアクセス可能