日本語 English
インターステラ株式会社の技術ブログです

【インターンステラ】locustでの負荷テスト

 こんにちはインターンのyouです.

 今回は前回作成した,GCPのVMでWordPressを動かし,locustでページ閲覧やログインなどの処理の負荷を見てみました.
手順
 はじめにGCPのCloudLauncherで「WordPress」と検索しそのインスタンスを作成します. これだけでテスト対象のwebは完成です.
 次に,前回作成したインスタンスにSSHで接続し,次のコマンドを実行します.
$ sudo su
$ pip install locustio
$ exit

これでlocustを使う準備は完了し,あとは負荷処理の内容をエディタで「locustfile.py」というファイルを作成し,次の様なスクリプトを書きます.

# -*- coding: utf-8 -*-
from __future__ import absolute_import
from __future__ import unicode_literals
from locust import HttpLocust, TaskSet, task

class UserTaskSet(TaskSet):
 def on_start(self):
  self.client.post("/wp-login.php", {"text": "test@mail.ma", "password": "test0000"})
  self.client.post("/wp-login.php", {"text": "test@mail.ma", "password": "testt"})

 @task
 def index(self):
  self.client.post("/wp-login.php", {"text": "test@mail.ma", "password": "test0000"})
  self.client.post("/wp-login.php", {"text": "tests@mail.ma", "password": "testt"})
  self.client.get("/?s=a")
  self.client.get("/wp-admin/")

class WebsiteUser(HttpLocust):
 task_set = UserTaskSet
 min_wait = 1000
 max_wait = 1000

これを実行するには以下のコマンドを実行し,-hオプションで試験先URLを指定します.

$ locust -H example.com

実行したらhttp://localhost:8089 にアクセスし,Number of users to simulate: と
Hatch rate: に値を入力しStart swarmingをクリックします.
 以上で負荷試験が開始し,レスポンス時間等を確認できます.

まとめ
 今回は単純なログインを行っただけなので簡単でした.
 今後はSQLを使った負荷試験やAPIの負荷試験もやってみたいと思いました.

SNSでフォローする
PAGE TOP