【インターンステラ】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の負荷試験もやってみたいと思いました.


このブログの人気の投稿

【GCP】Compute EngineでVPNサーバーを立てるときの注意点

【GCP】Compute Engineからメール送信する方法 (SendGrid編)

【AWS】IAMFullAccessを付与せずIAM Roleの作成とアタッチを行う方法