テスト コントローラーとテスト エージェントを使用したロード テスト
発行: 2016年7月
このトピックの内容は、次の製品に該当します。
Visual Studio Enterprise |
Visual Studio Professional |
Visual Studio Express |
---|---|---|
テスト コントローラーとテスト エージェントを使用して複数のコンピューターに負荷を分散し、複数の仮想ユーザーをシミュレートすることで、ロード テストを実行できます。
この負荷を作成するときに、自分のリソースを使用したり、自分のコンピューターをセットアップしたりする必要はありません。 クラウド ベースのロード テストを使用すると、多数のユーザーが同時に Web サイトにアクセスした場合と同等の負荷を生成する仮想マシンをクラウドに用意できます。 必要なものは、Visual Studio オンライン アカウントだけです。 毎月、15,000 分に相当する時間のロード テスト用仮想ユーザーを無料で提供するクラウド ベースのロード テスト サービスの詳細を参照してください。
内部設置型リソースを使用してアプリのロード テストを行うために必要な構成について理解するには、このトピックの残りの部分を参照してください。
一般的なリモート構成
Machine1 および Machine2: Visual Studio (複数のテスト担当者が同じコントローラーを使用可能)
Machine3: コントローラー (エージェントもインストールされている場合あり)
Machine4-n: Machine3 のコントローラーに関連付けられているエージェント
ロード テストを実行するとき、通常、テストに対して生成できる負荷の量は、コンピューターのメモリと処理能力に依存します。 テスト コントローラーは負荷を生成しませんが、テスト エージェントからのロード テスト統計とテスト エージェントおよびテスト対象システムからのパフォーマンス カウンター データを収集します。 したがって、テスト コントローラーによって使用されるデータベースでは、格納されるデータの量とテストの実行に使用されるテスト エージェントの数の両方に対応するリソースが必要になります。 テスト コントローラーおよびテスト エージェントのハードウェア要件については、次の表を参考にしてください。
コンポーネント |
テスト コントローラー アプリケーション層 |
テスト コントローラー データ層 |
テスト コントローラー アプリケーション/データ層 |
---|---|---|---|
CPU |
最低: 1 GHz 推奨: 2 GHz |
最低: 1 GHz 推奨: 2 GHz |
最低: 1 GHz 推奨: 2 GHz |
ディスク - システム |
最低: 1 GB 推奨: 1 GB |
最低: 1 GB 推奨: 1 GB |
最低: 1 GB 推奨: 1 GB |
ディスク - インストール |
最低: 1 GB 推奨: 48 GB |
最低: 8 GB 推奨: 48 GB |
最低: 8 GB 推奨: 48 GB |
メモリ |
最低: 1 GB 推奨: 1 GB |
最低: 1 GB 推奨: 1 GB |
最低: 1 GB 推奨: 1 GB |
テスト コントローラーを使用してロード テストを実行できるようにするには、ロード テストを実行するときに SQL Server のインスタンスを使用するようにテスト コントローラーでロード テスト データベースを構成する必要があります。 SQL Server を所有していない場合は、Visual Studio Enterprise に付属している SQL Express をロード テスト ストアとして使用できます。 テスト コントローラーを構成する方法の詳細については、「テスト エージェントおよびテスト コントローラーのインストールと構成」を参照してください。
ハードウェアのパフォーマンスを決定するときには、次のような要素も考慮してください。
コンポーネント |
テスト エージェント |
テスト コントローラー アプリケーション層 |
テスト コントローラー データ層 |
テスト コントローラー アプリケーション/データ層 |
---|---|---|---|---|
CPU |
テストによっては、CPU がしばしば制限要因となります。 |
頻繁には使用されません。 |
頻繁には使用されません。 |
頻繁には使用されません。 |
ディスク |
ロード テストで詳細ログが有効な場合は頻繁に使用されます。 |
頻繁には使用されません。 |
24 時間分のテスト データに対して 10 GB の領域が必要です。 |
24 時間分のテスト データに対して 10 GB の領域が必要です。 |
メモリ |
テストによっては、メモリが制限要因となることがあります。 |
頻繁には使用されません。 |
SQL によって頻繁に使用されます。 |
SQL によって頻繁に使用されます。 |
1 つのテスト エージェントで生成できる負荷の量は、テストによって大きく異なります。 ほとんどのテストは、CPU の制限を受けます。 CPU 使用率は、1 秒あたりの要求数 (RPS) に直接比例します。 他のロード テストでは、メモリが制限要因となります。 Load Agent から予測できる RPS は、多くの要素に依存します。 次に例を示します。
ユーザー ロード
待ち時間
認証方式
要求および応答のサイズ
応答時間
応答の検証レベル
負荷の下で実行するテストの種類 (Web テストまたは単体テスト)
待ち時間は、CPU の制限を受けるテストでユーザー数を決定する最大の要因です。 待ち時間を 2 秒から 10 秒に変更すると 5 倍の数のユーザーをシミュレートできますが、生成される RPS は同じです。 実際のユーザーをシミュレートすることが目的の場合は、ユーザーが Web サイトで行う操作を想定して、適切な待ち時間を設定します。 待ち時間を長くし、仮想ユーザー数を増やすことが、Web アプリケーションに対するストレスを増加させるとは限りません。
"ユーザーあたりの接続" 接続モードを使用するテストでは、テスト エージェントがメモリの制限を受ける可能性があります。 ロード テストの実行設定では、2 つの接続モードを構成できます。 接続プール モード (既定) では、接続はプールされますが、それぞれのユーザーはアクティブなときに 2 つの接続を使用します。 このモードでは、すべての仮想ユーザーが接続プール上で多重化されます。 これにより、100 個の接続を共有する 1,000 人のアクティブな仮想ユーザーを設定できます。 "ユーザーあたりの接続" モードでは、それぞれのユーザーが持つ接続は、サーバーが利用できる 2 つの実際の接続で構成されます。
Web テストを使用して、待ち時間が 3 ~ 5 秒の一般的な ASP.NET アプリケーションに対してロード テストを行う場合、2 GHz の CPU と 1 GB の RAM (推奨構成) を搭載したシングル プロセッサ テスト エージェントで約 1,000 人のユーザーをシミュレートできます。 サポートされるユーザー数は、待ち時間と相関関係にあります。 待ち時間が長いほど、より多くのユーザーをサポートできます。
Visual Studio Enterprise を実行するサーバーは、最小帯域幅が 1 Mbps、最大待機時間が 350 ミリ秒の信頼性の高いネットワーク接続機能を備えている必要があります。 テスト エージェントとテスト コントローラー間にはファイアウォールを設置しない方が適切です。 テストのパフォーマンスが予想よりも悪い場合は、ハードウェア構成のアップグレードを検討してください。
SQL サイズに関する考慮事項
既定では、SQL Express がコントローラーにインストールされ、ロード テストの結果の既定の SQL ストアとしてコントローラーによって使用されます。 SQL Express データベースは、ライセンスによって格納できるデータが 10 GB に制限されています。 これは、一般的なロード テストの 24 時間分のロード テスト データに相当します。 ロード テスト データを格納するために必要な領域のサイズは、テストによって大きく異なります。
ロード テストの実行中、各コンピューターの各カウンター インスタンスに対してサンプルが収集されます。 したがって、データベースで必要となる領域のサイズは、収集するカウンターの数、テストで使用するコンピューターの数、およびサンプリング レートで制御される収集するサンプルの数に依存します。
ロード テストの実行設定では、タイミングの詳細を収集できます。 これにより、仮想ユーザー アクティビティ チャートが有効になります。 さらに、詳細な仮想ユーザー ログを収集することもできます。
ロード テストの実行では、1 つまたは複数の診断データ アダプターを使用して、情報を収集したり、テスト用コンピューターの設定を変更したりできます。 これらのアダプターは、実行のテスト設定で構成します。 これらのアダプターからのデータは、SQL Express にも格納されます。診断データ アダプターによっては、大きな領域が必要になる場合があります。
可能な場合は、別のデータベースを使用してロード テスト データを格納することを検討してください。 データベースは、テスト コントローラー コンピューターまたは別のコンピューターに格納できます。 データ ストアを変更するには、.sql ファイルに含まれた SQL コマンドを、ロード テストの結果ストアとして使用する SQL Server のインスタンスに送信します。 これには、2 つの方法があります。 1 つは、コマンド プロンプトで sqlcmd コマンドを使用して、目的のデータベースに接続するために必要なオプションを指定する方法です。 -i オプションを使用して、loadtestresultsrepository.sql へのパスを指定します。 もう 1 つは、SQL のいずれかの GUI インターフェイス (たとえば、クエリ アナライザー) を使用して、.sql ファイルを開き、その接続を送信する方法です。
参照
ロード テストのためのテスト コントローラーおよびテスト エージェントの構成
Test Controller および Test Agent を使用した複数のテスト コンピューターへのロード テストの実行の分散
テスト エージェントおよびテスト コントローラーのインストールと構成
テスト コンピューターでのテストの実行またはデータの収集の設定
コンピューターの設定およびテストの設定を使用した診断情報の収集
Visual Studio のテストにおけるテスト設定の指定
ロード テストのためのテスト コントローラーおよびテスト エージェントの構成
[廃版] 方法: テスト設定で指定されたテスト コントローラーおよび Test Agent を使用してロード テストを実行する
チュートリアル: ロード テストでのテスト コントローラーとテスト エージェントの使用