ロードテストの中身を見てみよう
さて、ここまででロードテストを作成して実行する一番単純な方法についてご理解いただけたのではないかと思います。しかし、より実際に近いロードテストを実行するためには、さまざまな設定を行わなければいけません。
ここでは、先ほどまでに作成したロードテストを元に、VSTTのロードテストがどのように構成されているかを見ていきたいと思います。まずはもう一度図12を見てみてください。大きくシナリオ、カウンタセット、実行設定の3つで構成されています。ではこの3つについて詳しく見ていきたいと思います。
シナリオ
シナリオはユーザーがどのような形でアプリケーションを利用するかを定義するためのものです。アプリケーションにさまざまな機能が含まれる場合にはどの機能がどのくらいの割合で使われるのか、例えば企業内アプリケーションであれば、利用者が全員LAN回線でInternet Explorer 6.0を利用してアクセスするだろうといったことを設定します。これらがテストミックス、ブラウザミックス、ネットワークミックスとして設定されているものです。また利用者数などを想定するロードパターン(図12ではステップロードパターン)もあります。
テストミックス
テストミックスではアプリケーションの使われ方とその割合を定義します。アプリケーションの使われ方を定義するためにはWebテスト機能で作成したWebテストを利用します。Webテスト1つ1つがアプリケーションの個々の機能を利用するための方法で、これらを複数読み込み、各Webテストの割合を決めることでアプリケーションの使われ方を定義します。次の図22はWebテストを二つ読み込み、3:1の割合でそれぞれのWebテストが実行されるように構成した画面です。
このようにWebテストを活用してロードテストを作成することができますので、Webテスト機能でアプリケーションの簡単な機能テストを行い、そのテストを使ってパフォーマンステストを行うということも簡単に実行できます。
ブラウザミックス
ブラウザミックスはユーザーが利用するブラウザの割合を設定するものです。標準では図8に示す一覧が設定可能なブラウザとして用意されています。インターネット向けアプリケーションや企業内でもInternet Explorer 5.0以上などを想定している場合にその割合を想定して定義することができます。次の図23はIE6.0, IE5.5, Netscape6.0がそれぞれ6:3:1の割合で利用されることを想定して設定している画面です。
このブラウザの種類ですが、ブラウザがWebサーバーにリクエストを出す際のHTTPヘッダーを定義している非常にシンプルなものです。このため、例えばIE7など新しいブラウザも簡単に定義することができます。定義ファイルはVisual Studioを既定でインストールしている場合には「C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\Templates\LoadTest\Browsers」に定義されています。ここにあるファイルを参考に新しい「.browser」ファイルを作成することで新しいブラウザの種類を定義することができます。
ネットワークミックス
ネットワークミックスはユーザーが利用するネットワーク回線の割合を設定するものです。標準では図9に示す一覧が設定可能なネットワークとして用意されています。次の図24はLAN、ADSLの1.5Mbps、56kダイアルアップが55:40:5の割合で利用されることを想定して設定している画面です。
「Cable/DSL 1.5Mbps」の1.5Mbpsのように各ネットワークの種類には帯域幅が定義されており、アプリケーションへのアクセス時に自動的にその帯域幅に絞った状態で接続が試行されます。このネットワークミックスもブラウザミックス同様任意のものを追加することが可能で、定義ファイルは「C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\Templates\LoadTest\Networks」内にあります。必要な場合にはここにあるファイルを参考に新しい「.network」ファイルを作成してください。
ロードパターン
ロードパターンはロードテスト実行中にどのように負荷をかけていくかを設定するものです。ロードパターンは次の表1に示す3つが用意されています。
種類 | 説明 |
持続 | 常に一定のユーザーが利用している状態にするパターンです。 |
ステップ | 指定間隔ごとに利用ユーザー数を増加させていくパターンです。10ユーザーから初め、5秒ごとに10ユーザーずつ、200ユーザーまで増加させるといった設定が可能です。 |
ゴール志向 | パフォーマンスカウンタのしきい値をもとにユーザー数を決定させるパターンです。CPU利用率を60~90%の間で保ち、そのためにユーザー数を1~300の間で上限させるなどの設定が可能です。 |
一般的な負荷テストに利用する場合にはステップロードパターンを利用しますが、継続的な利用に対しての状態を知りたい場合やサーバーの特定の状態に応じた状況を知りたい場合には持続やゴール志向のロードパターンが役に立ちます。
カウンタセット
カウンタセットはロードテストの実行時に収集するパフォーマンスカウンタの一覧です。カウンタセットは標準では図25に示すように「LoadTest」「Controller」「Agent」の3つが定義されています。
またそれぞれのカウンタセットの中にはカウンタカテゴリとそこに含まれるパフォーマンスカウンタが定義されています。この例では、「Controller」というカウンタセットの中に「Memory」や「Processor」などのカウンタカテゴリがあり、「Processor」のカウンタカテゴリとして「% Processor Time」というカウンタが定義されています。このカウンタカテゴリおよびカウンタはWindowsのパフォーマンス管理ツール内のパフォーマンスオブジェクト、カウンタと対応しています。それぞれのカウンタの意味などが知りたい場合などはパフォーマンス管理ツールのヘルプなどを参考にしてみてください。
カウンタセットの編集
ロードテスト実行時にどの端末からどういったパフォーマンスカウンタの値を取得するかの設定方法は後述の実行設定の部分で説明を加えますが、設定の際に「カウンタセットの単位で設定する」という注意点があるので覚えておいてください。つまり「% Processor Time」など個別のカウンタごとには設定することができないということです。パフォーマンスカウンタからあらかじめ取得しておきたいものを決定しておく必要があります。
取得したいパフォーマンスカウンタのセットをカスタマイズしたい場合には独自にカウンタセットを追加することもできます(既存のカウンタセットを編集することもできますが標準のものはそのまま残しておくことをお奨めします)。この場合は「カウンタセット」フォルダを右クリックし、[カスタムカウンタセットの追加]を選択します。
カスタムカウンタセットを追加したら今度はそこにカウンタを定義していきます。先ほど追加したカスタムカウンタセットを右クリックし、[カウンタの追加]を選択します。
Windowsのパフォーマンス管理ツールをご存知の場合には、似たような見慣れた画面が表示されますので、この画面で任意のカウンタを選択して追加していきます。
カウンタを削除したい場合には、削除対象のカウンタを選択して右クリックし、[削除]を選べばカウンタセットから削除することができます。カウンタカテゴリ内に含まれるすべてのカウンタが削除されると、カウンタカテゴリも自動的に削除されます。
しきい値規則の設定
カウンタセットに対してカウンタの追加や削除を行い、ロードテストに必要なパフォーマンスカウンタの定義をすることができますが、カウンタにはもう一つ設定を行った方がいいものがあります。それがしきい値規則と呼ばれるものです。しきい値規則は任意のカウンタに設定することができ、パフォーマンスカウンタが示す値に基づき、警告やエラーを表示させることができます。例えば、標準カウンタセットの「Agent - Processor - % Processor Time」を見てみると「定数の比較」というしきい値規則が定義されていることが確認できます。
この例では、CPU使用率が90%を超えたところで警告があがり、95%を超えたところでエラーになるという設定がされています。CPU利用率やメモリ使用量などアプリケーションのテスト中に越えてはいけないパフォーマンスカウンタの値が決められている場合には、この規則を活用して設定してください。
実行設定
実行設定はロードテストの実行方法を決めるための重要な部分です。ここでは大きく分けて、実行そのものにかかわる設定と、実行中に取得するパフォーマンスカウンタの設定の二つを行います。
カウンタセットの割り当て
先ほどのカウンタセットのところで説明していた内容のカウンタセットの編集とは少し違う内容です。名前が非常に似ていて混乱しやすい個所でもありますので先ほどの内容と併せて、どこで何を設定しているのかを押えてみてください。
ここでは、どの端末でどのカウンタセットを利用してパフォーマンスカウンタの値を取得するのかを設定します。実行設定内のカウンタセットの割り当てを右クリックし、[カウンタセットの管理]を選択します(実はカウンタセットのコンテキストメニューからも同じものが表示されます。図26などを参照。この辺がさらに混乱の原因かもしれません)。
表示された「カウンタセットの管理」ウィンドウでは、コンピュータの追加とカウンタセットの割り当てを行います。[コンピュータの追加]ボタンを押すと新しいコンピュータが追加されるので、パフォーマンスカウンタ取得対象のPC名を設定してください。ここではPC名称の妥当性チェックは行われませんが、ロードテストの実行時にはこのPC名称が利用されるのでその点に注意して設定してください。次の図32は「LIBATY」というPCに「カスタム1」というカウンタセットを割り当てている例です。
ロードテストの設定
ロードテストの設定(=実行設定のプロパティ)では、ロードテストの実行時間などを設定します。実行設定フォルダ内にある実行設定を選択するとVisual Studioのプロパティウィンドウに内容が表示されるので、ここから各種設定を行います。
特に重要なのはタイミングのカテゴリとしてあるもので、テストの実行時間の設定を行います。サンプル速度はパフォーマンスカウンタの値を取得する間隔の設定を行うものなので、あまり早くしすぎて負荷をかけすぎたりあまり遅くしすぎて必要なデータが集まらなかったりといったことがないように調整してください。
次に重要なのが全般カテゴリの検証レベルです。前回の記事でWebテストの検証規則について解説しました。検証レベルの詳細は本稿に譲るとしていたので、ここで解説しておきたいと思います。ここでは、Low、Medium、Highの3種類の設定ができます。Webテストの検証規則でも同様の設定ができ、この組み合わせによってロードテスト中に実施される検証規則の設定を行います。具体的には次の表2の通りとなりますので参考にしてみてください(縦軸はWebテストでの設定、横軸はロードテストでの設定です)。
Webテストの検証レベル | Low | Medium | High |
Low | 実行する | 実行する | 実行する |
Medium | 実行しない | 実行する | 実行する |
High | 実行しない | 実行しない | 実行する |
なお、実行設定は複数定義しておくこともできます。作成後の実行確認テスト用に実行時間や検証レベルの低いものを用意しておき、本番用に別に用意しておくといったことが可能です。複数用意した実行設定はロードテストのプロパティで設定可能です。ロードテストのプロパティを確認すると「アクティブな実行設定」というものが用意されているので、ここで実行設定を切り替えることでテスト用、本番用の切り替えといったことが可能です。