Application Load Testing Tools for API Endpoints with loader.io
loader.io はメール送信サービスで有名な SendGrid が実験的に提供しているサービスです。
これもまた Dev Intersection に参加したときに Brady Gaster 氏のセッションで使われていて、凄く便利だと思ったので実際に試してみました。
ちなみにセッションでは Windows Azure Web サイトに対して負荷をかけて、無料から共有へとスケールさせるデモだったんですが、当然ながらそれ以外にも使えます。
まずはアカウントを登録する必要がありますが、メールアドレスとパスワードを入力するだけなので非常に簡単です。とりあえずアカウントを作ってサインインすると以下のような画面になります。
「New Test」ボタンをクリックすると、テストに必要な情報を入力する画面になるので、今回は以下のように「だるやなぎメーカー」負荷をかけるような設定を入力してみました。
基本的には名前と URL を入力すればテスト自体は作成可能ですが、テストの種類(繰り返すかどうか)やリクエスト時の HTTP リクエストヘッダなどかなり細かく設定が可能となっています。
今回はすぐにテストを実行したいので「Start this test now」ボタンを選択しますが、「schedule this test」を選択すると現在のテストをスケジュール実行することもできます。本当にいろいろ出来て便利ですね。
さて、これでテストがすぐに実行されるかというと、残念ながらあと 1 つだけ手順が必要となります。これだけでテストが実行可能だと、他人のサイトに対しても負荷テストを簡単に実行できてしまうので、サイトの検証が必要となってます。
検証の方法としては特定の名前のファイルを設置するか、DNS に TXT レコードを追加するかのどちらかです。
今回はファイルを設置する方法を使ってみます。
手順としては、先程のページに書いてある通りの名前のファイル名を作成して、そのファイルの中身も適切に書き換えてサーバにアップロードするだけです。簡単ですね。
実行してみた結果は以下のような感じです。だるやなぎメーカーは静的な HTML なのでこれぐらいじゃ全然余裕ですね。
ちなみに、下の方にある「Response Times」「Error rates」「Bandwidth」をクリックすると、それぞれのグラフに表示が切り替わります。JMeter や Visual Studio などを使わなくても、簡単なテストであれば loader.io で十分使えそうですね。
loader.io の詳しい使い方や新機能に関しては公式ブログでわかりやすく紹介されていたのでおすすめしておきます。
loader.io's Load Testing Blog - Application Load Testing Tools
追記
テスト結果ページにある「Share」ボタンを選択すると、ブログなどで貼り付け可能なコードが表示されます。実際に貼ってみるとこんな感じ。
そして、一番下にある Share リンクから Twitter か Facebook で loader.io についてシェアすると、最大のコネクション数が 50000 まで増えるようになってます。