2011-01-05 25 views
3

現在、Visual Studio 2010を使用して負荷テストを利用する負荷テストアプリケーションを作成しています。負荷テストでは、同じマシン上で20人のユーザーがシミュレーションされます。シミュレートされたすべてのユーザー間でメモリ内で共有されます。Visual Studio負荷テスト仮想ユーザーシミュレーション

私は、私は次の質問に答えるのドキュメントを見つけることができませんでした驚いた。他の各仮想ユーザの実行コンテキストをseperates

何を?各仮想ユーザーはそれぞれのプロセスでテストを実行しますか?たぶん、独自のアプリドメインですか?それとも自分のスレッドだけで?それぞれのユーザーが独自のプロセスでテストを実行している場合、メモリ内のすべてのキャッシュは共有されず、すべてのユーザーのために1回ではなく各ユーザーに対して作成されるため、私にとっては悪いことです。

答えて

1

答えを得るには、Process Explorer(http://technet.microsoft.com/en-us/sysinternals/bb896653はタスクマネージャの高度なバージョンです)を使用できます。

Visual Studio Loadテストを実行し、プロセスエクスプローラを開きます。新しいプロセスが作成されていることを確認します。次に、Visual Studioのプロセスを見つけてダブルクリックします。次に[.NETパフォーマンス]タブを選択すると、プロセス内のすべてのAppDomainsの一覧が表示されます。

ここで、StresStimulus-http://stresstimulus.stimulustechnology.comという負荷テスト用のフィドラーエクステンションをリリースしました。すべての仮想ユーザーを同じプロセス内の異なるスレッドに保つところ。

1

これは私が今までに見つけた答えに最も近いものです。

http://blogs.msdn.com/b/billbar/archive/2007/06/13/coded-web-tests-and-web-test-plug-ins-should-not-block-the-thread.aspx

負荷テストを行うマシンごとに1つのプロセスがありますということで答え、複数のスレッドが使用されますが、仮想ユーザーは、スレッドごとの多くを動作するように、「最適化」されています。

静的なコンストラクタを使用して静的クラスを作成すると、すべての仮想ユーザー間で共有メモリブロックが取得されます。注意は、これがマルチスレッド環境であり、コードに適切な注意を払う必要があるということです。

+1

これは本当に明白かもしれませんが、静的なクラス/変数を使用して仮想ユーザー間でデータを共有するソリューションは、マルチエージェント設定には適していないことに注意してください。 – agentnega

関連する問題