ちょっと話題の記事

Loader.ioで負荷テストをしてみる

2021.01.13

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、CX事業本部の夏目です。

今回は負荷試験を行うことができるSaaS Loader.ioを使ってみようと思います。

Loader.io

メール送信サービスのSendGridが提供している負荷テストを行えるSaaS。

いくつか制限はありますが、無料でもある程度使うことができます。

https://loader.io/pricing

使ってみる

アカウント作成

Plans & Pricingの画面から Free の下の Sign Up Now をクリックします。

よくあるSignUp画面です。
メールアドレスやパスワード等を入力 & reCAPTCHAをやってからSign upをクリックします。

アカウントが作成され、負荷テストの対象のホストを登録する画面になります。
ただ、メールアドレスのverifyをしろと赤字で警告されているのでやっておきましょう。
(notify@loader.ioから Just one more thing - please verify your accountという件名でメールが来ていると思うので、開いてVerify meと書かれたリンクをクリックしてください)

ホストの登録

負荷テストを行いたいホストの登録をします。

New Hostをクリックします。

Domainに負荷試験をしたいホストのドメインを入力します。 (http://とかhttps://とかはいらないし、パスもいらない)

入力したら Next Verifyをクリックします。

ホストのVerifyを行います。
有料プランだとDNSでのVerifyができるのですが、無料プランではできないのでHTTPでVerifyします。

Verifyの方法は、①に表示されているトークンを、②のHTTPアクセスで返すようにすることです。
②には3つのURLがありますが、そのいずれか一つで返せばよいです。

返すように設定したら、Verifyをクリックします。

Verifyできれば、登録が完了するので次に負荷テストを作成していきます。
(New Testをクリックしてもいいし、左上のTestsのページに移動してから New Testをクリックしてもよいです)

テストする

Testsのページの New Testをクリックします。

負荷テストの設定をしていきます。

主に設定するのは次の項目

  • Test Settings
    • Name: テストの名前
    • Test type: 負荷テストのクライアントの増え方 (後ほどで詳しく説明する)
    • Clients & Duration: クライアントの数とテストの期間
    • Advanced Settings: 許容するエラーレートの上限、タイムアウト、Basic認証の設定をします
  • Client Requests
    • Method: HTTPのメソッド
    • Protocol: HTTPHTTPS
    • Host: 負荷テストの対象となるホスト。登録したものから選択
    • Path: リクエスト対象のパス
    • Headers & Parameters & Body & Response variables: 追加設定。今回ここは使用してないから実はよくわからない
    • Add Request: HTTPのリクエスト対象を増やすことができる。無料プランだと合計2つまで。

これらを設定して負荷テストを行います。

また下のボタンの挙動はこうなります。

  • Back: 前の画面(テスト一覧)に戻る。設定はいなくなる。
  • Run test: 負荷テスト実施
  • Save for later: 設定を保存する
  • Schedule this test: このテストを実施するスケジュールを作成する

(実際のところ私は Run testしかしたことありませんが)

Run testするとテストが実行されます。

(これは個人的にCloudFrontでホスティングしているファイルに1万クライアントから1分間負荷テストした結果)

Test type

先程説明を省略した Test typeですが、3種類あります。

  • Clients per test
  • Clients per second
  • Maintain client load

それぞれ説明していきます。

Clients per test

https://support.loader.io/article/16-test-types

設定値 (この画像における値) - Clients (2000) - Duration (20sec)

この設定では、毎秒 Clients/Durationの数のクライアントでテストを行います。
(この設定値では 100/20 = 5クライアントが毎秒リクエストを行います)

Clients per second

https://support.loader.io/article/16-test-types

設定値 (この画像における値) - Clients (5) - Duration (20sec)

この設定では毎秒 Clientsに設定したクライアント数でテストを行います。

Maintain client load

https://support.loader.io/article/16-test-types

設定値 (この画像における値) - Clients from (0) - Clients to (50) - Duration (20sec)

この設定ではfromに指定したクライアント数からtoに指定したクライアント数までクライアント数が増えていきます。
(増え方はDurationに設定した値で頭割り。この画像では (50 - 0)/20 = 2.5ということで、初回だけ2つ、それ以降は3つずつクライアントが増えている)

またこれまでと異なり一度追加されたクライアントは最後まで残ります。

まとめ

以上 Loader.ioを使用した負荷テストの方法でした。

無料プランでも1万クライアントまでは使用できるので非常に便利だと思います。