ロード テストにおけるネットワーク エミュレーションのトラブルシューティング
このトピックのトラブルシューティング情報は、ローカル エリア ネットワーク (LAN: local area network) 以外のネットワークで Visual Studio Ultimate のロード テストを実行する際のネットワーク エミュレーションに適用されます。[ネットワーク ミックスの編集] ダイアログ ボックスでは、次の種類のネットワークを使用するロード テストを構成できます。
LAN (既定値。このトラブルシューティング トピックには該当しません)
3G
ケーブル/DSL 1.5 Mbps
ケーブル/DSL 768k
ケーブル/DSL 384k
CDMA
ダイヤルアップ 56k
大陸間低速 WAN 300 Kbps
大陸間 WAN 1.5 Mbps
大陸内 WAN 1.5 Mbps
詳細については「Step 2.4 - Specifying Network Mix in the New Load Test Wizard」および「ロード テスト シナリオでの仮想ネットワークの種類の指定」を参照してください。
要件
- Visual Studio Ultimate
トゥルー ネットワーク エミュレーション
Visual Studio は、すべてのテストの種類にソフトウェア ベースのトゥルー ネットワーク エミュレーションを使用します。これにより、ロード テストが含まれています。トゥルー ネットワーク エミュレーションは、ネットワーク パケットを直接操作することでネットワークの状態をシミュレートします。トゥルー ネットワーク エミュレーターは、イーサネットなどの信頼できる物理リンクを使用して、ワイヤード ネットワークとワイヤレス ネットワークの両方の動作をエミュレートできます。次のネットワーク属性がトゥルー ネットワーク エミュレーションに組み込まれます。
ネットワーク上のラウンド トリップ時間 (待機時間)
有効な帯域幅の量
キュー動作
パケット損失
パケットの並べ替え
エラー反映
トゥルー ネットワーク エミュレーションでは、IP アドレスや TCP、UDP、ICMP などのプロトコルに基づくネットワーク パケットを柔軟にフィルター処理することもできます。
ネットワーク ベースの開発者およびテスト担当者は、トゥルー ネットワーク エミュレーションを使用して、目的のテスト環境のエミュレート、パフォーマンスの評価、変更の影響の予測、またはテクノロジの最適化に関する決定を行うことができます。ハードウェア テスト ベッドと比較して、トゥルー ネットワーク エミュレーションは、よりコストが少なく柔軟性に富んだソリューションです。
ロード テストでのネットワーク エミュレーションのしくみ
ロード テストでネットワーク エミュレーションを使用するには、Visual Studio Ultimate がインストールされている必要があります。ネットワーク エミュレーションは、[ネットワーク ミックスの編集] ダイアログ ボックスを使用して構成します。このダイアログ ボックスは、新しいロード テスト ウィザードの実行中に表示されますが、ロード テスト内の既存のシナリオを右クリックして [ネットワーク ミックスの編集] をクリックしても表示することができます。
ロード テストを開始すると、ネットワーク ミックスで選択したそれぞれのネットワーク プロファイル (DSL、56.K モデムなど) で使用可能なポートの範囲が割り当てられます。実行時に有効化されるネットワーク エミュレーション ドライバーでは、このポート範囲を使用できます (既定では、ネットワーク エミュレーション ドライバーは無効です)。
ロード テストの実行中、ロード ジェネレーターがテスト対象アプリケーションに要求を送信するときに、ポート範囲内のポートを指定します。ネットワーク エミュレーション ドライバーが選択されたポート範囲でのこのポートを検出すると、このポートに対して、この要求に適用されるネットワーク プロファイルを関連付けることができます。これにより、選択されたネットワーク プロファイルの条件が満たされるように、ソフトウェアの負荷をスロットリングすることができます。
ネットワーク エミュレーションが動作していないことを確認する方法
多くの場合、次に示すようなロード テスト レコード ソケット例外がログに記録されます。
"The requested address is not valid in its context xx.xx.xx.xxx:80"
[!メモ]
他の条件によって、このようなソケット例外が発生する場合もあります。ロード テストが続行される場合でも、ソケット例外はログに記録されます。次のセクションでは、問題の特定とトラブルシューティングを行う方法について説明します。
ネットワーク エミュレーションのトラブルシューティングを行う方法
問題の特定とトラブルシューティングを効果的に行うために、基本テストがすべて実行済みであることを確認してください。
ロード テストに参加しているすべてのコンピューター間で完全なネットワーク接続が保たれていることを確認します。
ネットワーク エミュレーションを手順に従って適切に構成していること、およびテスト エージェントに管理者権限が与えられていることを確認します。
トラブルシューティングの際、ファイアウォールによってネットワーク上の特定のポートまたはトラフィックがブロックされないように、すべてのファイアウォールが無効になっていることを確認します。
このソフトウェアの動作がロード ジェネレーター コンピューター上のウイルス対策ソフトウェアによって妨げられていないことを確認します。
問題がネットワーク エミュレーション ドライバーとロード テスト コンポーネントのどちらにあるのかを特定するために、次の手順を実行します。
ネットワーク エミュレーション ドライバーに問題がないかどうかを確認します。
ネットワーク エミュレーションを適切に構成してロード テストを実行します (ソケット例外が発生する場合があります)。
別のホストに対して ping を実行して出力を調べ、ネットワーク速度の低下、長い待機時間、またはその両方が発生するかどうかを確認します。待機時間の値が、選択されたネットワーク プロファイルと一致するかどうかを確認します。待機時間の値が選択したプロファイルと一致する場合、ネットワーク ドライバーは正常に動作しています。
ロード テストを実行しているテスト エージェント コンピューターから、外部の任意のホスト (たとえば、お気に入りの Web ページ) への接続を試みます。このテストにより、ロード テストの実行中にネットワーク ドライバーが有効な場合、外部またはラボへの接続に問題がないことを確認できます。これにより、ネットワーク エミュレーション ドライバーは問題領域から除外されます。
ロード テスト コンポーネントに問題がないかどうかを確認します。
ロード ジェネレーター (テスト エージェント コンピューター) と同じコンピューターで Sendrequests.exe をダウンロードし、実行します。Sendrequests.exe は、ネットワーク エミュレーション ロード テスト中のソケット例外のトラブルシューティングを行うためのサンプル プログラムです。
注意 マイクロソフトでは Sendrequests.exe プログラムをサポートしていません。
このサンプル プログラムを使用すると、ロード テストするコンポーネントで使用される一連のソケット接続呼び出しを正確にシミュレートできます。このテスト プログラムでもソケット例外が表示される場合、ロード テスト製品はソケット例外の原因から除外されます。また、ソケット例外が発生する原因としては、環境、コンピューター、ネットワークのいずれかに問題があるか、ツーリングの外部に問題がある場合があります。
外部の問題をデバッグしてから、ロード テストを再度実行してください。
このサンプル プログラムが正常に動作している場合は、次の図に示すような出力が表示されます。これは、問題の原因が環境ではなくロード テスト プログラムにある可能性を示しています。
Sendrequests.exe の正常な出力
ネットワーク エミュレーションと非互換の IPSEC
IPSEC を有効にした場合、ネットワーク パケットのポートは暗号化されます。そのため、ネットワーク エミュレーション ドライバーではパケットの送信元がロード テスト エンジンによって設定された指定ポート範囲に該当するかどうか判別できなくなります (前の「ロード テストでのネットワーク エミュレーションのしくみ」を参照してください)。ネットワーク エミュレーションを正常に実行するには、IPSEC を無効にする必要があります。
参照
処理手順
方法: Visual Studio でテストの設定を使用してネットワーク エミュレーションを構成する