この記事の英語版を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

テスト ミックス モデルを使用したロード テストにおける Web サイトまたはアプリケーションの実際の使用状況のエミュレーション

 

さまざまなロード モデリング オプションを使用して、ロード テストの対象となる Web サイトまたはアプリケーションの実際の使用状況をより正確に予測します。 正確なロード モデルに基づかないロード テストでは、誤解を招く結果が生じる可能性があるので、これを行うことが重要です。

必要条件

  • Visual Studio Enterprise

ロード テスト エディターまたはテスト ミックス モデル ウィザードを使用して、ロード テスト シナリオで以下の種類のテスト ミックスを指定できます。 詳細については、「2e93860a-a67a-43a2-9b0a-5ec65ca6e7a7#CreatingLoadTestsUsingWizardStep2_2」および「シナリオのテスト ミックス モデルの変更」を参照してください。

ロード テスト シナリオに、次のいずれかのテスト ミックス モデル オプションを指定できます。

  • テストの合計数: 仮想ユーザーがテスト イテレーションを開始するときに実行される Web パフォーマンス テストまたは単体テストを決定します。 ロード テストの終了時に、特定のテストの実行の回数が、割り当てられたテストの配分に近づけられます。 IIS ログまたは本番データのトランザクションの割合に基づくテスト ミックスを使用する場合に、このテスト ミックス モデルを使用します。 詳細については、「開始されるテストに基づく割合」を参照してください。

  • 仮想ユーザー数: 特定の Web パフォーマンス テストまたは単体テストを実行する仮想ユーザーの割合を決定します。 ロード テストのどの時点でも、特定のテストを実行中のユーザーの数が、割り当てられた配分に一致します。 テスト ミックスが、特定のテストを実行しているユーザーの割合に基づいている場合、このテスト ミックス モデルを使用します。 詳細については、「仮想ユーザーに基づく割合」を参照してください。

  • ユーザーのペース: ロード テストの過程で、各 Web パフォーマンス テストまたは単体テストが、ユーザー単位で 1 時間ごとに指定された回数実行されます。 仮想ユーザーがロード テスト全体で一定のペースでテストを実行するようにする場合、このテスト ミックス モデルを使用します。 詳細については、「テスト ミックスのペース配分」を参照してください。

    System_CAPS_tipヒント

    テスト ミックスの割合仮想ユーザーに基づく割合の選択基準は何でしょうか。 この 2 つの選択肢の違いは、テスト ミックス内に他のテストと比較して継続時間が長いテストが含まれている場合に重要です。 このような状況の場合は仮想ユーザーに基づく割合を選択してください。 この選択は、多数のユーザーが長時間継続するテストを実行する可能性が高いテストの実行を回避するために有用です。 ただし、すべてのテストの継続時間がほぼ同じ場合は、テスト ミックスの割合を選択しても問題はありません。

  • 時系列順: 仮想ユーザーは、テストがシナリオで定義されている順序に従って、Web パフォーマンス テストまたは単体テストを実行します。 仮想ユーザーは、ロード テストが完了するまでこの順序でテストの繰り返しを続行します。 詳細については、「順次処理」を参照してください。

ミックス内のテストごとに、次回のテスト実行時にそのテストが選択される頻度を決定する割合を指定できます。 たとえば、3 種類のテストに対して次の割合を割り当てることができます。

  • TestA (50%)

  • TestB (35%)

  • TestC (15%)

この設定を使用すると、次回のテストは、割り当てられた割合に基づいて開始されます。 ここでは、現在各テストを実行中の仮想ユーザーの数は考慮されません。

このテスト ミックス モデルは、特定のテストを実行する仮想ユーザーの割合を決定します。 このテスト ミックス モデルを使用すると、次回のテストは、割り当てられた割合だけではなく、特定のテストを現在実行中の仮想ユーザーの割合も考慮して開始されます。 ロード テストのどの時点でも、特定のテストを実行中のユーザーの数は、割り当てられた配分に可能な限り近づけられます。

テスト ミックスのペース配分を指定する場合は、テスト ミックス内のテストごとに各仮想ユーザーが実行するテストの実行のレートを設定します。 このレートは、各テストで、1 人の仮想ユーザーが 1 時間に実行するテストの実行として表されます。 たとえば、次のテスト ミックスのペース配分を各テストに割り当てることができます。

  • TestA: 各ユーザーが 1 時間に 4 回テスト

  • TestB: 各ユーザーが 1 時間に 2 回テスト

  • TestC: 各ユーザーが 1 時間に 0.125 回テスト

テスト ミックスのペース配分モデルを使用した場合は、ロード テスト ランタイム エンジンが、実際に開始されるテストのレートが指定されたレート以下になることを保証します。 割り当てられた数のテストの実行が完了するまでに時間がかかりすぎる場合は、エラーが返されます。

テスト ミックスのペース配分を使用する場合、[テスト イテレーション間の待ち時間] 設定は適用されません。

ロード テスト シナリオの [遅延のペースに分布を適用] プロパティの値を、true または false のどちらかに設定できます。

  • True: [テスト ミックスの編集] ダイアログ ボックスの [1 ユーザーの 1 時間あたりのテスト数] 列の値で指定された、標準的な統計分布による遅れを適用します。 詳細については、「テキスト ミックス モデルを編集して仮想ユーザーがテストを実行する確率を指定」を参照してください。

    たとえば、テストの [テスト ミックスの編集] ダイアログ ボックスの [1 ユーザーの 1 時間あたりのテスト数] の値を、1 時間あたり 2 ユーザーに設定したとします。 [遅延のペースに分布を適用] プロパティを True に設定すると、標準的な統計分布がテスト間の待機時間に適用されます。 1 時間につき 2 つのテストが実行されますが、その間隔は 30 分とは限りません。 最初のテストが 4 分後に実行されたり、2 回目のテストは 45 分後に実行されたりする場合があります。

  • False: テストは、[テスト ミックスの編集] ダイアログ ボックスの [1 ユーザーの 1 時間あたりのテスト数] 列の値に指定した特定のペースで実行されます。 詳細については、「テキスト ミックス モデルを編集して仮想ユーザーがテストを実行する確率を指定」を参照してください。

    たとえば、テストの [テスト ミックスの編集] ダイアログ ボックスの [1 ユーザーの 1 時間あたりのテスト数] の値を、1 時間あたり 2 ユーザーに設定したとします。 [遅延のペースに分布を適用] プロパティを False に設定すると、基本的にテスト実行時の設定を変更する余裕はなくなります。 テストは 30 分ごとに実行されます。 これにより、1 時間あたり 2 回のテストが行われます。

詳細については、「方法: 配分を適用してユーザー ペースのテスト ミックス モデルを使用するときの遅延をペース配分する」を参照してください。

順次処理に基づいてオプションを選択すると、仮想ユーザーは、テストが定義されている順序に従って、シナリオでのすべてのテストを実行するようになります。

実行設定プロパティの中で、[テスト イテレーション] プロパティの値を指定できます。 この値は、1 回のロード テストで実行されるテストの反復回数です。 指定された回数のテスト イテレーションが開始されると、負荷プロファイルの設定にかかわらず、他のテスト イテレーションは開始されません。 指定された回数のテスト イテレーションが完了すると、ロード テストが終了します。 詳細については、「方法: テスト イテレーションの数をテストの実行設定に指定する」を参照してください。

各仮想ユーザーのロード テスト セッションの始まりと終わりに実行するテストを選択できます。 詳細については、「テキスト ミックス モデルを編集して仮想ユーザーがテストを実行する確率を指定」を参照してください。

  • 初期化テスト このテストは、テスト ミックス内のいずれかのテストが実行される前に、各仮想ユーザーによって実行されます。

  • 終了テスト このテストは、特定の仮想ユーザーのすべてのテストが実行された後で実行されます。

初期化テストと終了テストには次の注意点があります。

  • ロード テストの継続時間を、反復カウントではなく、時間で指定できます。 この場合、ロード テストの実行の継続時間が完了すると、終了テストは実行されません。

  • 初期化テストが単体テストまたは Web パフォーマンス テストの場合は、初期化テストの完了後の TestContext オブジェクトまたは WebTestContext オブジェクトの状態が保存されます。 これは、テスト ミックス内のテスト イテレーションのための開始コンテキストとして使用されます。

  • シナリオ プロパティである [新しいユーザーのパーセンテージ] に定義された新しいユーザーは、初期化テスト、テスト ミックス内のテスト (1 回)、および終了テストを常に実行します。

表示: