2012-04-18 4 views
2

私はいくつかのWebパフォーマンステストを含むVisual Studio 2010負荷テストを行っています。 Webパフォーマンステストを実行するには、テスト中のWebサイトにログインする必要があります。したがって、ロードテストには初期化ステップが含まれています。これはログインを行い、そのようにして得られたクッキーをキャッシュするためにプラグインを使用する小さなウェブパフォーマンステストです。 「本当の」Webパフォーマンステスト - 実際の作業は、各正しくなるように、各テスト機能、プラグインで、キャッシュされたクッキーを読み取り、テストに追加していないもの:ログインが必要なWebパフォーマンステスト:それを独立して動作させる方法と負荷テストを行う方法

public override void PreWebTest(object sender, PreWebTestEventArgs e) 
{ 
    if (CookieCache.Cookies != null) // CookieCache is a static class of mine 
     e.WebTest.Context.CookieContainer.Add(CookieCache.Cookies); 

問題を私は負荷テストを実行するとき、これはすべて正常に動作しますが、負荷テスト初期化プログラムが実行されていない場合はクッキーが存在しないため、ウェブパフォーマンステストを実行できないため、ログインしないと失敗します。

この場合、推奨される解決策はありますか?言い換えれば、ウェブパフォーマンステストがログインしている必要がある場合、負荷テストの一部である場合とそれを単独で実行する方法はありますか?

各Webパフォーマンステストを独立して実行する明白な方法は、最初にログインテストを呼び出すことですが、負荷テストでは正しく動作しないため、実行できません負荷テストの開始時にユーザごとに1回だけ)。

答えて

0

私はVisual Studio 2010の負荷テストに精通していませんが、NUnitのSetUpTearDownのメソッドがすべてのテストで1回実行される必要があるようです。アセンブリ。

bit of searchingは、等価がInitTermのテストであることを意味します。

1)負荷試験におけるシナリオノードを右クリックし、[編集]テスト ミックスを選択する...編集テストミックス]ダイアログで

2)は、フォームの一番下を見てください。 2つのチェックボックスを参照してください。 1つはinitテスト用、もう1つはtermテスト用です。

initテストは各ユーザーの前に実行され、 ユーザーが完了するとテストが実行されます。テスト期間が確実に実行されるように、負荷テストのための冷却時間を に設定する必要があります。冷却時間は、実行設定ノード のプロパティです。この設定では、期間が終了すると、テストに が出血する可能性があります。これを5分に設定することができます。クールダウン の期間は必ずしも5分間実行されるわけではありません。すべて 期末テストが完了したら終了します。それに20秒かかる場合は、負荷テストが完了すると になります。

+0

お手数をおかけしていただきありがとうございます。残念ながら、あなたの提案は基本的に私たちがすでにやっていることです。 initテストを追加することは、負荷テストの中にあるときにWebパフォーマンステストが正しく動作することを意味します*。ただし、負荷テストの中にあるかどうかにかかわらず、Webパフォーマンステストを常に機能させる問題は解決しません。これは、ロードテスト以外でWebパフォーマンステストを実行した場合にInitテストが実行されないためです。 – PhantomDrummer

5

ソリューションは、(「ウェブテストを挿入コール」を経由して)あなたの個々のWebパフォーマンステストにログインテストを追加することですが、の不在探し条件付きルールを「パラメータが存在するコンテキスト」によりゲートコンテキストパラメータ$ LoadTestUserContextこのパラメータは、Webテストが負荷テストで実行されている場合にのみ存在します。

このようにして、負荷テストの有無にかかわらず、ログインが1つだけになります。

0

なぜ負荷テストとWebテストの両方が動作することを道

Public Overrides Sub PreRequest(sender As Object, e As PreRequestEventArgs) 
    MyBase.PreRequest(sender, e) 
    Dim cookie As System.Net.Cookie = New System.Net.Cookie(...) 
    e.Request.Cookies.Add(cookie) 

代わりPreWebTestFunction

のPreRequest機能を試してみて、使用しません。

関連する問題