チュートリアル: Web パフォーマンス テストを含むロード テストの作成と実行
このチュートリアルでは、Web パフォーマンス テストを含むロード テストを作成します。
このチュートリアルでは、Visual Studio 2010 Ultimate を使用してロード テストを作成および実行する手順を説明します。 ロード テストは、Web パフォーマンス テストおよび単体テストのコンテナーです。 ロード テストは、新しいロード テスト ウィザードを使用して作成します。 ロード テストの詳細については、「ロード テストの作成と編集」を参照してください。 Web パフォーマンス テストの詳細については、「Web パフォーマンス テストの作成と編集」を参照してください。 単体テストについては、「単体テストを使用したコードの検証」を参照してください。
注意
ロード テストには Web パフォーマンス テストと単体テストの両方を含めることができますが、このチュートリアルでは、Web パフォーマンス テストを含むロード テストに焦点を当てます。 ロード テストへの単体テストの追加方法については、「チュートリアル: 単体テストを含むロード テストの作成と実行」を参照してください。
ロード テストでは、目的のロード シミュレーションを生成するために変更できる、実行時に設定される多くのプロパティを公開しています。 このチュートリアルでは、新しいロード テスト ウィザードを使用して、Web パフォーマンス テストをロード テストに追加します。
このチュートリアルでは、ロード テストに追加できる既存の Web パフォーマンス テストが必要です。
このチュートリアルでは、次のタスクを行います。
ロード テストを作成します。
Web パフォーマンス テストをロード テストに追加します。
ロード テストの設定をいくつか変更します。
ロード テストを実行します。
必須コンポーネント
Microsoft Visual Studio 2010 Ultimate.
「チュートリアル : 簡単な Web アプリケーションの作成」での Web アプリケーションを作成する手順を完了していること。
Web パフォーマンス テストを作成する手順を完了していること。 「チュートリアル: Web パフォーマンス テストの記録と実行」を参照してください。
前のチュートリアルで作成した ColorWebApp ソリューションを開く
ソリューションを開く
ASP.NET Web アプリケーション (ColorWebApp) と Web パフォーマンス テスト (ColorWebTest.webtest) を含む ColorWebApp ソリューションを開きます。
詳細については、「チュートリアル : 簡単な Web アプリケーションの作成」および「チュートリアル: Web パフォーマンス テストの記録と実行」を参照してください。
しきい値違反とエラーのデモンストレーションのために、Red.aspx.cs ASP.NET ページのコードを変更する
しきい値違反とエラーのデモンストレーションのために、Red.aspx.cs コードを変更するには
ソリューション エクスプローラーで [ColorWebApp] ASP.NET Web アプリケーション プロジェクト フォルダーを展開し、[Red.aspx] ノードを展開します。
[Red.aspx.cs] ファイルを右クリックし、[コードの表示] を選択します。
コード エディターで、Page_Load メソッドに、次の強調表示されたコードを追加します。
protected void Page_Load(object sender, EventArgs e) { Random rnd = new Random(); int result = rnd.Next(5000); //To emmulate various page times up to 5 seconds. Thread.Sleep(result); if (result < 500) Response.Redirect("NOWHERE"); //10% chance to cause an HTTP 404 error. }
このコードを追加することによって、ロード テスト アナライザーに模擬的なしきい値違反とエラーが表示されます。 これらの違反については、このチュートリアルの後半で見ることになります。
新しいロード テスト ウィザードを使用してロード テストを作成する
新しいロード テスト ウィザードを開始するには
ソリューション エクスプローラーで、ColorWebAppTest テスト プロジェクト ノードを右クリックします。
[追加] をクリックし、[ロード テスト] をクリックします。
新しいロード テスト ウィザードが開始します。
新しいロード テスト ウィザードの最初のページは、[新しいロード テストの作成ウィザードにようこそ] ページです。
[次へ] をクリックします。
ロード テスト シナリオの設定を編集するには
[ロード テスト シナリオの設定の編集] ページが表示されます。
[ロード テスト シナリオの名前の入力] ボックスに、「Scenario basic stress」と入力します。
シナリオとは、グループ化機構です。 一連のテストおよびこれらのテストをロードの下で実行するためのプロパティで構成されています。
[待ち時間のプロファイル] に [記録された待ち時間を中央値とする正規分布を使用する] を設定します。
待ち時間は、ユーザーが Web ページで次のページに進むまでの考慮時間を表します。
詳細については、「方法: 待ち時間を設定して Web パフォーマンス テストで操作休止時間をシミュレートする」を参照してください。
[次へ] をクリックします。
テスト シナリオのロード パターン設定を編集するには
[ロード テスト シナリオのロード パターン設定の編集] ページが表示されます。
[持続ロード] を選択します。
ロード パターン プロパティは、ロード テスト中に、シミュレートされたユーザー ロードを調整する方法を指定します。
詳細については、「ロード パターンを編集して仮想ユーザー アクティビティをモデル化」を参照してください。
[次へ] をクリックします。
シナリオのテスト ミックス モデルを選択するには
[ロード テストのテスト ミックス モデルを選択します] ページが表示されます。
[テスト ミックスを何に基づいてモデル化しますか] で、[テストの合計数] を選択します。
テスト ミックス モデルでは、ロード テスト シナリオで仮想ユーザーが指定のテストを実行する確率を指定します。
詳細については、「テスト ミックス モデルを編集して仮想ユーザーがテストを実行する確率を指定」を参照してください。
[次へ] をクリックします。
シナリオに ColorWebTest.webtest Web パフォーマンス テストを追加するには
[テストをロード テスト シナリオに追加して、テスト ミックスを編集します] ページが表示されます。
[追加] をクリックして、テストを選択します。
[テストの追加] ダイアログ ボックスが表示されます。
[使用可能なテスト] ペインで ColorWebTest Web パフォーマンス テストを選択し、矢印ボタンをクリックして、テストを [選択されたテスト] ペインに追加します。
[OK] をクリックします。
テスト ミックスが表示されます。 ロード テストに複数の Web パフォーマンス テストと単体テストが含まれている場合は、スライダーを使用してテストの配分を調整できます。
シナリオのテスト ミックスとは、そのシナリオに含まれるテストの選択やそれらのテストのシナリオ内での配分などのさまざまな要素を組み合わせたものを意味します。 テスト ミックスは、特定のシナリオにおけるテストの目的を反映している必要があります。
詳細については、「方法: 新しいロード テスト ウィザードでテスト ミックスを作成する」を参照してください。
[次へ] をクリックします。
テスト シナリオのネットワーク ミックスを選択するには
[ネットワークの種類をロード テスト シナリオに追加して、ネットワーク ミックスを編集します] ページが表示されます。
既定の設定である LAN の 100% をそのまま使用します。
ネットワーク ミックスを使用すると、ロード テスト シナリオで負荷をより現実的にシミュレートできます。
ロード テスト シナリオでエミュレートするネットワークの種類を指定するには、[ネットワークの種類] の下の各行の横にあるドロップダウン矢印をクリックします。 複数のネットワークの種類を使用するようにネットワーク ミックスを構成している場合は、スライダーを使用してネットワークの種類の配分を指定できます。
詳細については、「ロード テスト シナリオでの仮想ネットワークの種類の指定」を参照してください。
[次へ] をクリックします。
テスト シナリオのブラウザー ミックスを選択するには
[ブラウザーの種類をロード テスト シナリオに追加し、ブラウザー ミックスを編集します] ページが表示されます。
既定の設定である Internet Explorer 7.0 をそのまま使用するか、現在使用しているブラウザーの種類を指定します。
ロード テスト シナリオで Web アプリケーションのテストに使用するブラウザーの種類を指定するには、[ブラウザーの種類] の下の各行の横にあるドロップダウン矢印をクリックします。 複数のブラウザーの種類を使用するようにブラウザー ミックスを構成している場合は、スライダーを使用してブラウザーの種類の配分を指定できます。
詳細については、「ロード テスト シナリオでの Web ブラウザーの種類の指定」を参照してください。
[次へ] をクリックします。
ロード テストの実行中にカウンター セットで監視するコンピューターを指定するには
[ロード テストの実行中にカウンター セットと共に監視するコンピューターを指定します] ページが表示されます。
既定の設定をそのまま使用します。
カウンター セットは、指定したコンピューターで収集されます。 カウンター セットとロード テスト中に使用されるコンピューターとの関連付けは、カウンター セット マップです。 たとえば、テストしている Web サーバーに ASP.NET、IIS、および .NET アプリケーション カウンター セットのマップがあるとします。
テストの実行中に監視するコンピューターを選択するには、[コンピューターの追加] をクリックし、以前に対象とした非稼動 Web サイトをホストするサーバーの名前を入力します。 ホスト コンピューター名を追加することによって、ロード テストで重要なパフォーマンス データを収集します。
注意
監視する各サーバーでは、パフォーマンス モニターを実行するために十分なユーザー権限が必要です。 十分なユーザー権限がない場合は、エラーが生成されます。
サイトの SQL データベースをホストするコンピューターに対しては、個別のエントリを追加できます。 コンピューターを追加しないことを選択した場合、ローカルのロード カウンターのみがテストに追加されます。
その後、監視するカウンター セットを選択できます。 特定のパフォーマンス モニターをロード テストに追加する、定義済みの一組のカウンター セットが表示されます。これには、アプリケーション、ASP.NET、.NET アプリケーション、IIS、SQL などが含まれます。
詳細については、「ロード テストでのコンピューターのカウンター セットの指定」および「チュートリアル: ロード テストでのテスト コントローラーとテスト エージェントの使用」を参照してください。
[次へ] をクリックします。
ロード テストの実行設定を編集するには
[ロード テストの実行設定の確認および編集] ページが表示されます。
[ロード テストの継続時間] を選択し、ロード テストのスモーク テストを行うために [実行継続時間] を 2 分に設定します。
Web パフォーマンス テストおよびロード テストをビルドする場合、すべてが正しく構成され、期待どおりに実行されることを検証するために、短く、軽いロード テストを実行することが、推奨される方法です。 このプロセスは、スモーク テストと呼ばれます。
実行設定とは、ロード テスト全体に影響を与えるプロパティのセットです。 実行設定では、テストの長さ、ウォームアップ期間、報告されるエラー詳細の最大数、サンプリング レート、説明、ロード テストの失敗時にログを保存するかどうか、および検証レベルを決定します。 実行設定は、ロード テストの目的を反映している必要があります。
詳細については、「ロード テストの実行設定の構成」を参照してください。
[完了] をクリックします。 ロード テスト エディターで、ロード テストが開きます。
ロード テスト エディターを使用して、ロード テストにしきい値規則を追加する
ロード テストにしきい値規則を追加するには
[カウンター セット] ノードで [LoadTest] カウンター セット ノードを展開し、[カウンター カテゴリ] フォルダー ノードを展開します。
[LoadTestPage] カウンター カテゴリ ノードを展開し、[カウンター] フォルダー ノードを展開します。
[Avg Page Time] カウンター ノードを右クリックし、[しきい値規則の追加] を選択します。
[しきい値規則の追加] ダイアログ ボックスが表示されます。
[規則の選択] は、[定数の比較] 規則が選択されたままにします。
[選択された規則のプロパティ] の [オプション] カテゴリで、[しきい値を超えたときに警告] を True に設定します。
[しきい値] カテゴリで [警告しきい値] を 3 に設定し、[重要なしきい値] を 4 に設定します。
[OK] をクリックします。
[Avg Page Time] カウンターの下に、新しい規則が設定された [しきい値規則] フォルダーが追加されます。
ロード テストを実行し、グラフ上でのしきい値違反を有効にする
ロード テストを作成したら、そのロード テストを実行して、ロード シミュレーションに Web サイトが応答する状況を確認します。 ロード テストの実行中に、ロード テスト アナライザー ウィンドウで初期分析を開始できます。
ロード テストを実行するには
ロード テストがロード テスト エディターで開いている状態で、緑の [実行] をクリックします。 ロード テストがロード テスト アナライザーのグラフ ビューで実行を開始します。
テストの実行中に、ツール バーの [凡例の表示] ドロップダウン リスト ボタンをクリックし、[しきい値の違反をグラフに表示] を選択します。
テスト シミュレーションでいずれかのしきい値を超えた場合、ツリー コントロール ノードにアイコンが表示され、しきい値違反について示されます。 エラーの場合は赤い丸がオーバーレイ表示され、警告の場合は黄色い三角形がオーバーレイ表示されます。
グラフ ビューの [ページ応答時間] グラフにしきい値違反アイコンが表示されているときに、ロード テスト アナライザーのツール バーの [分析メモの追加] をクリックします。
[分析] ダイアログ ボックスが表示されます。
[説明] ボックスに「しきい値違反」と入力します。
[分析] ボックスで「Red.aspx.cs ファイルでコード障害の可能性」と入力します。
コメントは、ロード テスト結果と共に永続的に保存されます。
ロード テストの実行の終了後、ロード テスト結果はロード テスト アナライザーの概要ビューで、[LoadTest1[時刻]] という別のタブに表示されます。
ロード テストを分析する
ロード テストの終了後、ロード テスト結果の詳細な分析を継続できます。 詳細については、「ロード テスト アナライザーの概要」を参照してください。
ロード テスト アナライザーを使用してロード テストを分析するには
概要ビューで [エラー] というタイトルの表まで下へスクロールし、[HTTP エラー] または [検証規則エラー] をクリックします。
ロード テスト アナライザーが、[エラー] テーブルが表示されているテーブル ビューに変わり、クリックした規則の種類が選択されます。
[検証規則エラー] という規則の種類の行で、[サブタイプ] エラー列に [ValidateResponseurl] があることに注意してください。 このしきい値違反は、Red.aspx.cs ファイルに追加した、以下の強調表示されたコードによって発生したものです。このコードは、最大 5 秒の疑似的なページ遅延をランダムに発生させます。
protected void Page_Load(object sender, EventArgs e) { Random rnd = new Random(); int result = rnd.Next(5000); //To emmulate various page times up to 5 seconds. Thread.Sleep(result); if (result < 500) Response.Redirect("NOWHERE"); //10% chance to cause an HTTP 404 error. }
この疑似的な遅延は、チュートリアルの前半で指定した、[警告しきい値] の 3 と [重要なしきい値] の 4 の両方に違反する可能性があります。 警告アイコンは感嘆符の付いた黄色の三角、重大な違反アイコンは X 印の付いた赤い丸として表示されます。
[HTTP エラー] というエラーの種類の行で、[サブタイプ] エラー列に [404 - NotFound] があることに注意してください。 これは、Red.aspx.cs ファイルに追加した、以下の強調表示されたコードによって発生したものです。 このコードは、存在しないページへのリダイレクトを 10% の確率で発生させ、それがエラーになります。
protected void Page_Load(object sender, EventArgs e) { Random rnd = new Random(); int result = rnd.Next(5000); //To emmulate various page times up to 5 seconds. Thread.Sleep(result); if (result < 500) Response.Redirect("NOWHERE"); //10% chance to cause an HTTP 404 error. }
[エラー数] 列で、[検証規則エラー] 規則の種類の数のリンクをクリックします。
[ロード テスト エラー] ダイアログ ボックスが表示されます。
右にスクロールし、[詳細] 列で [TestLog] リンクをクリックします。
Web パフォーマンス テスト ビューアーが別のタブで開かれ、エラーと関連付けられた ColorWebTest が表示されます。
[ロード テスト エラー] ダイアログ ボックスの [閉じる] をクリックします。
[LoadTest[時刻]] タブを選択して、ロード テストの結果を表示しているロード テスト アナライザーに戻ります。
カウンター パネルで、[Scenaro1] ノードにいずれかのしきい値警告アイコンが表示されていることを確認します。 しきい値違反の原因となるコードの影響を受けた [Avg Page Time] カウンターが見つかるまで、ノードを展開します。
グラフ ビューで、[ページ応答時間] グラフに表示されているしきい値違反にもしきい値違反アイコンが表示されることに注意してください。
違反アイコンが表示されているプロット線をクリックします。
プロット線が太線になり、[Avg Page Time] カウンターがグラフ ビューの凡例で [Red] (前のチュートリアルで追加されたレポート名) 要求に対応して強調表示されます
[Avg Page Time] カウンターの [最大] 列が指定したしきい値を超えていることに注意してください。
次の手順
このチュートリアルでは、Web アプリケーション (ColorWebApp) と Web パフォーマンス テスト (ColorWebTest.webtest) を使用してロード テストを作成し、いくつかの基本的な分析作業を開始する方法を説明しました。
仮想ユーザー詳細チャートを使用してロード テストの詳細を分析する方法については、「チュートリアル: 仮想ユーザー アクティビティ チャートを使用した問題の特定」を参照してください。
テスト コントローラーとテスト エージェントを使用してロード テストを複数のコンピューターに配置する方法については、「チュートリアル: ロード テストでのテスト コントローラーとテスト エージェントの使用」を参照してください。
参照
処理手順
チュートリアル: Web パフォーマンス テストの記録と実行
チュートリアル: コード化された Web パフォーマンス テストの作成
方法: 新しいロード テスト ウィザードを使用して実行設定を作成する
方法: 新しいロード テスト ウィザードを使用して、ユーザー アクティビティ、テスト、ブラウザー、ネットワークのモデル化に必要なシナリオを作成する
方法: 新しいロード テスト ウィザードを使用して新しいロード テストを作成する
方法: 新しいロード テスト ウィザードでテスト ミックスを作成する
方法: ロード テスト アナライザーを使用してロード テストにおける Web ページ応答時間を表示する
概念
ロード テスト アナライザーを使用したロード テストのしきい値規則違反の分析
ロード テスト アナライザーのグラフ ビューでのテスト結果の分析
ロード テスト アナライザーのテーブル ビューでのテスト結果の分析
その他の技術情報
ロード テスト シナリオでの Web ブラウザーの種類の指定
ロード パターンを編集して仮想ユーザー アクティビティをモデル化