高度なロードテストの編集
ここまでの解説でロードテストの作成、実行、編集方法について見てきました。ここでは、より現実に即し、より高度なロードテストを作成するために押さえておきたいいくつかのポイントを紹介します。
テストシナリオの高度な組み合わせ
テストミックス、ブラウザミックス、ネットワークミックス、ロードパターンはそれぞれ自由に設定できますが、これらを組み合わせて使われるパターンについては、細かく設定することができません。例えば、Webテスト1相当の機能はIE6、IE5.5から使われ、IE6.0はLANからのみだが、IE5.5はLANとDSL 1.5Mbpsからが半々といった状況を想定するとどうでしょうか。このようなブラウザ種類ごとのネットワークミックスの設定はシナリオが一つでは設定できません。このような場合にはシナリオをもう一つ作成します。シナリオ1、2を次のように設定して組み合わせると、ここで想定したような利用方法も1つのロードテストとして実行することができます。
シナリオ1 | シナリオ2 | |
テストミックス | WebTest1 | WebTest1 |
ブラウザミックス | Internet Explorer 6.0 | Internet Explorer 5.5 |
ネットワークミックス | LAN | LAN[50%], Cable/DSL 1.5Mbps[50%] |
ロードパターン | 任意 | 任意 |
このようにシナリオまでを組み合わせの1つとして考えることで、さまざまな状況に応じた設定が可能となります。
サーバーカウンタの追加
実際にやってみるとすぐに分かりますが、カウンタセットの編集でカウンタの追加を行う際、ローカルコンピュータ以外のコンピュータを選択してカウンタの一覧を表示させることができません。これでは、例えばWindows XPの端末でロードテストを作成している場合、Windows Server 2003などサーバーOS特有のパフォーマンスカウンタを追加することができません。ここでその問題を解決する1つの方法を解説します(著者が普段行っている方法でこれが正しい方法なのかは分かりません)。
まず、実行設定のカウンタセットの割り当てで新しいコンピュータとして、パフォーマンスカウンタ取得対象のコンピュータ名を入力します。ここでカウンタセットを1つも定義しないと設定が消えてしまうので、ダミーでどれか1つ選択しておきます。
次に、カウンタセットのカウンタの編集を行います(図27、図28参照)。図28の画面でコンピュータのドロップダウンを展開すると、先ほど設定したコンピュータ(例ではSVR1)が表示されているのでこれを選択します。現在Visual Studioを実行しているユーザーでSVR1という端末にアクセス可能な場合にはSVR1のパフォーマンスカウンタの一覧が表示されるので、ここから必要なカウンタをカウンタセットとして定義することができます。
少し面倒な手順ですがこのようにすることでサーバーOS特有のパフォーマンスカウンタもVisual StudioのGUI上から設定することができます。
Webテストのデータバインディングが及ぼす影響
前回の記事で、SQL ServerなどOLE DB経由で接続可能なデータストアをデータソースとしてWebテストにデータバインディングを行うことができることを解説しました。また、データソースの利用パターンとして次の表4に示す方法があることを解説しました。
設定値 | 説明 |
順次(Sequential) | 最初のレコードから読み取りを行い、1行ずつ順次読み取ります。 |
ランダム(Random) | テーブル内の行をランダムに読み取ります。 |
ユニーク(Unique) | 最初のレコードから読み取りを行い、1行ずつ順次読み取ります。 |
これはWebテストに対して設定しますが、実際にはロードテストが実行されるときに利用されます。順次の場合、データソースの先頭から順番にデータを利用していき、最後尾まで読みきった後はまた先頭から読み込みます。ランダムの場合、データソースにランダムにアクセスしますが、1つのデータソース内のすべてのデータを読みきるまでは同じデータに2回アクセスするということはありません。ユニークは順次に似ていますが、すべてのデータを読みきった後は先頭に戻るということはしないという点が異なります。
これらはそのときのデータ量や使用が想定されるパターンをもとに”Webテスト”に対して設定をしてください。例えば数値型の主キーが設定されていて、且つ主キーの昇順で並んでいるようなデータの場合、順次よりもユニークの方がより現実的かも知れません。
ロードテスト実行後の注意
ロードテストが実行されると、その結果は都度ロードテストの結果ストアに指定したSQL Serverデータベースに格納されます。結果がデータベースに格納されているおかげで過去に行ったテスト結果も参照することができますが、1点だけ注意点があります。過去に行ったロードテストの結果を参照するにはその時にデータを格納したデータベースにアクセスできる必要があるという点です。これはロードテストの結果ファイルにロードテスト実行時に結果を格納したデータベースへの接続文字列が格納されているために発生する現象です。この接続文字列を変更できればいいのですが、暗号化されているため、適当な接続文字列に変更することができません。
Visual Studio 2005ではこの問題を解決するための有効な手段が用意されていないため、テストを行う端末と結果を確認する端末を同一にするなどの運用で回避する必要があります。
まとめ
VSTTのロードテスト機能を利用したWebアプリケーションのロードテストの作成方法、実行方法、テストのカスタマイズ方法などについて説明してきました。気をつけなければいけない点や注意しておいた方がいい点なども併せて紹介しましたが、それさえ気をつければ非常に強力なツールであると思います。VSTSの強力な連携機能によりWebテスト、ロードテストがシームレスにつながるので、それぞれのテストのために新しいツールの知識を習得したり、一方のテストシナリオが無駄になったりといったことも発生しません。Webアプリケーションの品質、パフォーマンスを強化するためにぜひ一度使ってみてください。