ロードテストを実行してみよう
図12に示すシナリオやカウンタセット、実行設定からなる一覧は、先ほどの新しいロードテストウィザードで設定を行った内容を保持したロードテストを構成する要素です。ウィザードを終了した時点で既に実行可能なロードテストができあがっていますので、まずは実行させてみましょう。と、行きたいところですがロードテストを実行するためには最初の一回目だけ追加の作業が必要となります。
ロードテスト結果ストアを作成する
ロードテストを実行するためには実行結果を格納するためのデータベースが必要となります。Visual Studio 2005の用語でこれを「ロードテストの結果ストア」と呼びます。
Visual Studio 2005コマンドプロンプトにて以下の手順を実行し、ロードテストの結果ストアを作成します。
- Windowsの[スタート]メニューで、[すべてのプログラム]-[Microsoft Visual Studio 2005]-[Visual Studio Tools]-[Visual Studio 2005 コマンド プロンプト]を開く
- コマンドプロンプトにて「cd "C:\Program Files\Microsoft Visual Studio 8\Common7\IDE"」を実行する(Visual Studio 2005のインストール先に合わせて読み変えてください)
- 「SQLCMD /S localhost\sqlexpress /i loadtestresultsrepository.sql」と実行する(実際に利用するデータベースインスタンスに合わせて読み変えてください)
この手順の通り実行すると、図13に示すような「LoadTest」というデータベースが作成されます。
次にロードテストがこのデータベースに結果を格納するようにVisual Studioの設定を行います。Visual Studioの[テスト]-[テストコントローラの管理]を開きます(図14)。
テストコントローラの管理ウィンドウが開くので、「ロードテストの結果ストア」の右側にあるボタンをクリックして、データベース接続文字列の構成を行います(図15)。
接続のプロパティウィンドウは普段.NETアプリケーションの開発をされている方には見慣れたウィンドウです。ここで「サーバー名」、「データベースの選択と入力」で先ほど作成したLoadTestデータベースを選択できるように構成します。
開いた画面はOKなどを押して順次閉じていけば設定完了です。これでロードテストを実行した際のさまざまな結果がデータベースに保存されるように構成されました。では、ようやくロードテストの実行に移りましょう。
ロードテストを実行しよう
準備が少し面倒ですが、それが済んでいれば実行自体は非常に簡単です。図12のようなロードテストの画面が開いている状態で左上の[テストの実行]をクリックするだけでロードテストの実行が開始されます。
テストの実行が始まると図18のような画面が表示されます。
ロードテストの実行中画面は大きく3つのウィンドウで構成されています。ここで少し各ウィンドウについて補足しておきます。
1. カウンタ
左上にある「カウンタ」と表示されているウィンドウです。ここには、ロードテストを構成するときに定義したカウンタの一覧が格納されています。例えばコンピュータのところを展開してみると、図19のようなカウンタが定義されていることを確認できます。
ロードテスト中はここで定義されているカウンタの内容を収集しながら実行されます。ロードテストが終了した際にここから対象のカウンタをダブルクリックして選択することで、3.のグラフウィンドウに内容を表示することができます。
2. 概要
左下にある「概要」と表示されているウィンドウです。ロードテストの実行概要が表示されています。中身をすべて表示してみると図20のような感じになります。
テストの実行数やリクエスト処理時間など、結果の概要だけを簡単に確認したい場合に利用します。
3. グラフ
中央にある「グラフ」ウィンドウです。ここには、ロードテストの実行中、実行後の各種カウンタの内容が表示されます。また実行後、結果をデータベースから取得している場合には、図21のように横軸の下にバーが表示されるので、これを移動することで任意のタイムラインを拡大表示させることもできます。
グラフの下側には現在グラフ内に選択されているカウンタの一覧が表示されています。1.のウィンドウからカウンタを選択すると、グラフの下側の一覧にも追加されていきます。また、カウンタ一覧で現在選択中のカウンタの内容についてはグラフの右側に数値としても表示されます。このウィンドウを駆使して実行ユーザー数とCPU利用率の関係などを調べ、アプリケーションのボトルネックを見つける作業を行います。