0

テストクラスに静的オブジェクトがあり、ロードテストプラグインによって読み込まれ、各要求から返されるデータで更新する必要があります。応答データ以外に必要な情報は、要求の送信時に使用された元のWebテスト・コンテキストのWebTestUserIdです。Visual Studio負荷テスト - 使用するポストWebテストイベントハンドラ

私はそれはそう検証ルールを介してこれを行うことができます。私は潜在的に仕事ができる他のオプションを参照してください、その差または推奨されるアプローチのドキュメントを見つけるのトラブルを抱えていますが

ValidationClass: ValidationRule 
{ 
    public override void Validate(object sender, ValidationEventArgs e) 
    { 
     JObject responseBody = JObject.Parse(e.Response.BodyString);   
     int webTestUserId= ((TheTestClass)sender).Context.WebTestUserId; 

     // update some static field in the test class 
    } 
} 

。私は、イベントハンドラを参照してください。

WebTest.PostWebTest、私は2つの以上のリンクを投稿することができません

WebTest.ValidateResponse、 WebTest.ValidateResponseOnPageComplete、および LoadTest.TestFinishedは(プラグインで使用される)が、ハイパーリンクされていない2つのイベントハンドラは、WebTestクラスで見つけることができます。

これらのそれぞれをどのような状況で使用する必要がありますか?

答えて

0

Validation rulesは、テストが正しく実行されていることを確認し、必要に応じて障害ステータスとエラーメッセージを設定することを目的としています。目的のために、プラグインを使用して必要なデータを取得して保存する方がよい場合があります。データが特定の要求に由来する場合は、WebTestRequestPluginPostRequestメソッドを使用します。すべての要求からデータを収集する必要がある場合は、WebTestPluginPostRequestメソッドを使用します。

異なるプラグイン(抽出ルールと検証ルール)タイプの機能が重複しています。彼らの目的は、Microsoftのドキュメントから明らかです。 Webテスト項目は、明示的に呼び出すWebテストからのみ呼び出されます。ロードテストプラグインのメソッドTestStartingTestFinishedは、ロードテストの一部として実行されるすべてのテストに対して呼び出されます。

最終的な質問の割り当てはint webTestUserId = e.WebTest.Context.WebTestUserId;に簡略化できます。これは、検証ルールとプラグインの両方に適用されます。

関連する問題