#locustについて
- シナリオをPythonで書ける
- テストの状況をリアルタイム表示することができるWeb画面がある
- 冗長構成にすることができる
- https://locust.io/
- https://docs.locust.io/en/stable/index.html
#試してみる
###前提
- Docker、docker-composeがインストール済み
###環境構築
locustのコンテナと、試しに負荷をかけてみるコンテナを作ります。
docker-compose.yml
version: '3.7'
services:
master:
image: locustio/locust
ports:
- "8089:8089"
volumes:
- ./:/mnt/locust
# 負荷をかける環境のドメインを指定する
command: -f /mnt/locust/main.py -H http://test_web:80
# お試し用の負荷をかけられるコンテナ
test_web:
image: httpd
tty: true
###テストシナリオ
テストシナリオを作ります。
main.py
from locust import HttpUser, task, constant_pacing
class StressTestUser(HttpUser):
wait_time = constant_pacing(1)
@task
def top_page_access(self):
# 負荷をかける対象のパスを指定する
self.client.get("/")
ユーザクラスを作ります。ユーザクラスは1人のユーザーが行う行動をwait_timeやtaskなどで定義していきます。
https://docs.locust.io/en/stable/writing-a-locustfile.html#wait-time-attribute
###起動
コンテナを起動します。
docker-compose up
###実行