Smily Books Blog 2023年7月更新中

Web Application Stress Tool

ApacheベースのWebサービスのパフォーマンス測定を実施する場合、abが一般的ですが、同ツールでは単一URLへのリクエストでしかできません。 実際のWebアクセスに近い、複数のユーザがそれぞれページを遷移していくことをシミュレートするツールの1つとして、「Web Application Stress Tool」がMicrosoftから無料で提供されています。
以下、最新バージョンのBuild 293: (02/04/2000) で説明しますが、日本語のガイドもあるため、シンプルな説明に留めます。

1.起動
Microsoft Web Application Stress Toolを起動します。 メイン画面と合わせてCreate New Scriptも同時に表示されますが、メイン画面からでも同様の操作可能のため、ここでは利用しません。よって、同画面はここで消しておきます。

2.事前準備(スクリプトの記録)
①まず最初に試すのがCreate Recordです。負荷を計測したいサイト及びWebブラウザの準備をしてから、メインメニューのScripts->Create->Recordを選択すると以下の画面が表示されるので、以下のように選択して、Next->Finishとクリックします。

②以下の画面に合わせて、以下のhtmファイル(~/Microsoft Web Application Stress Tool/samples/blank.htm)も開かれます。htmファイルが開かれたブラウザとは別のブラウザで試験を実施したい場合、この画面を閉じ、別のブラウザを起動して、スクリプトを作成しても構いません。ただし、起動時の初期画面は空白(about:blank)としておかないと、起動した段階で初期画面のURLからスクリプトが開始されてしまいますので注意して下さい。これで試験のベースとなるスクリプトの記録準備は完了です。あとはあらかじめ用意したシナリオに基づき、ブラウザ上で実際の操作を実行し、最後にStop Recordingを押すまでのスクリプトが記録されます。

3.設定及び利用方法
①例えば、Google(http://www.google.co.jp/)をアクセスした場合の結果も記録できますが、ブラウザがIEの場合、一般に外部のURLをアクセスする場合には、プロキシサーバの設定を外部接続可能なサーバに変更しておく必要があります。(Microsoft Web Application Stress Tool起動後のIEのプロキシサーバの設定は、強制的にlocalhost:8000に変更されてしまいます。)ただし、これは負荷試験を行う対象のサイトをローカルに構築した上で、実施すれば特に問題はないでしょう。

②記録したスクリプトを再現したい場合、該当のスクリプトを選択後、Scripts->Runで操作は再現され、その結果はReportsとして記録されます。ReportsはView->Reportsで確認できます。

③複数のユーザからのアクセスを再現したい場合、Usersを追加します。UsersはView->Usersで追加でき、最大100人分の登録が可能です。

④Stress(負荷)その他の設定は、ScriptsのSettingsで設定します。ここでStress level(threds)はUsersで登録したユーザ数分大きくできます。Stressを100以上にした場合、Stress multiplier(sockets per thread)で更に大きくする事も可能です。例えば、Stress level(threds):100、Stress multiplier(sockets per thread):10とすれば、100×10=1000人分の負荷を仮想的に実現する事ができます。その他には、Test Run Time、Use Random Delay等を調整する事により、シミュレートしたい負荷状況を設定する事ができます。

4.その他Web負荷試験ツール(ご参考)
スポットで行う負荷試験及びその後のチューニング作業では、Microsoft Web Application Stress Toolで十分かと思われますが、なるべく実環境に近い状態で測定を行う場合は、同ツールよりも複雑なシナリオ作成、多機能な市販の負荷試験ツール(マーキュリー・インタラクティブ社の「Load Runner 7.02」等)を使用する事をお勧めします。