次の方法で共有


方法: Web パフォーマンス テスト プラグインを作成する

 

発行: 2016年7月

Web パフォーマンス テスト プラグインを使用すると、Web パフォーマンス テストの主要な宣言ステートメントとコードを分離し、そのコードを再利用できます。 カスタマイズされた Web パフォーマンス テスト プラグインには、Web パフォーマンス テストの実行時に一部のコードを呼び出す方法が用意されています。 Web パフォーマンス テスト プラグインは、テスト イテレーションごとに 1 回実行されます。 また、テスト プラグインで PreRequest メソッドまたは PostRequest メソッドをオーバーライドすると、これらの要求プラグインは各要求のそれぞれ前または後に実行されます。

カスタマイズされた Web パフォーマンス テスト プラグインは、WebTestPlugin 基底クラスから独自のクラスを派生することによって作成できます。

記録した Web パフォーマンス テストではカスタマイズされた Web パフォーマンス テスト プラグインを使用できるため、最小限のコードを記述するだけで、Web パフォーマンス テストをより高度に制御できるようになります。 ただし、コード化された Web パフォーマンス テストでそれらを使用することもできます。 詳細については、「[廃版] 方法: コード化された Web パフォーマンス テストを作成する」を参照してください。

注意

ロード テスト プラグインも作成できます。「方法 : ロード テスト プラグインを作成する」を参照してください。

必要条件

  • Visual Studio Enterprise

カスタム Web パフォーマンス テスト プラグインを作成するには

  1. Web パフォーマンス テストが含まれている、Web パフォーマンスとロード テストのプロジェクトを開きます。

    Web パフォーマンスとロード テストのプロジェクトを作成する方法の詳細については、「How to: Create and Configure Test Projects for Automated Tests」を参照してください。

  2. ソリューション エクスプローラーで、ソリューションを右クリックし、[追加] を選択して、[新しいプロジェクト] を選択します。

    [新しいプロジェクトの追加] ダイアログ ボックスが表示されます。

  3. [インストールされているテンプレート][Visual C#] を選択します。

  4. テンプレートの一覧で、[クラス ライブラリ] を選択します。

  5. [名前] ボックスに、クラスの名前を入力します。

  6. [OK] をクリックします。

  7. 新しいクラス ライブラリ プロジェクトがソリューション エクスプローラーに追加され、新しいクラスがコード エディターに表示されます。

  8. ソリューション エクスプローラーで、新しいクラス ライブラリの [参照設定] フォルダーを右クリックし、[参照の追加] を選択します。

  9. [参照の追加] ダイアログ ボックスが表示されます。

  10. [.NET] タブを選択し、スクロール ダウンして [Microsoft.VisualStudio.QualityTools.WebTestFramework] を選択します。

  11. [OK] をクリックします。

    Microsoft.VisualStudio.QualityTools.WebTestFramework への参照がソリューション エクスプローラーの [参照設定] フォルダーに追加されます。

  12. ソリューション エクスプローラーで、Web パフォーマンス テスト プラグインの追加先であるロード テストを含んでいる Web パフォーマンスおよびロード テスト プロジェクトの最上位ノードを右クリックし、[参照の追加] を選択します。

  13. [参照の追加] ダイアログ ボックスが表示されます。

  14. [プロジェクト] タブをクリックし、[クラス ライブラリ プロジェクト] を選択します。

  15. [OK] をクリックします。

  16. コード エディターで、プラグインのコードを記述します。 まず、WebTestPlugin クラスから派生する新しいパブリック クラスを作成します。

  17. 1 つまたは複数のイベント ハンドラー内でコードを実装します。 実装のサンプルについては、次の例を参照してください。

  18. このコードを記述した後で、新しいプロジェクトをビルドします。

  19. Web パフォーマンス テストを開きます。

  20. Web パフォーマンス テスト プラグインを追加するには、ツール バーの [Web テスト プラグインの追加] を選択します。

    [Web テスト プラグインの追加] ダイアログ ボックスが表示されます。

  21. [プラグインの選択] で、Web パフォーマンス テスト プラグイン クラスを選択します。

  22. [選択したプラグインのプロパティ] ペインで、実行時に使用するプラグインの初期値を設定します。

    注意

    プラグインのプロパティをパブリック、設定可能、および基本型 (整数型、ブール型、文字列型など) として設定して、任意の数だけ公開できます。Web パフォーマンス テスト プラグインのプロパティは、後で [プロパティ] ウィンドウを使用して変更することもできます。

  23. [OK] をクリックします。

    [Web テスト プラグイン] フォルダーにプラグインが追加されます。

    警告

    プラグインを使用する Web パフォーマンス テストまたはロード テストを実行すると、次のようなエラー メッセージが表示されることがあります。

    Request failed: Exception in <plug-in> event: Could not load file or assembly '<"Plug-in name".dll file>, Version=<n.n.n.n>, Culture=neutral, PublicKeyToken=null' or one of its dependencies.The system cannot find the file specified.

    この問題が発生するのは、いずれかのプラグインのコードを変更して、新しい DLL バージョン (Version=0.0.0.0) を作成したのに、プラグインが元のプラグイン バージョンを参照したままになっている場合です。この問題を解決するには、次の手順を実行します。

    1. Web パフォーマンスとロード テストのプロジェクトで、参照に関する警告が表示されます。プラグイン DLL への参照を削除し、再度追加します。

    2. プラグインをテストまたは該当する場所から削除し、その後、追加し直します。

使用例

次のコードでは、テスト イテレーションを表す WebTestContext に項目を追加する、カスタマイズされた Web パフォーマンス テスト プラグインを作成します。

Web パフォーマンス テストの実行後は、このプラグインを使用することにより、TestIteratnionNumber という名前の追加された項目を、Web パフォーマンス テスト結果ビューアーの [コンテキスト] タブで確認できます。

using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using Microsoft.VisualStudio.TestTools.WebTesting;

namespace SampleRules
{
    [Description("This plugin can be used to set the ParseDependentsRequests property for each request")]
    public class SampleWebTestPlugin : WebTestPlugin
    {
        private bool m_parseDependents = true;

        public override void PreWebTest(object sender, PreWebTestEventArgs e)
        {
            // TODO: Add code to execute before the test.
        }

        public override void PostWebTest(object sender, PostWebTestEventArgs e)
        {
            // TODO: Add code to execute after the test.
        }

        public override void PreRequest(object sender, PreRequestEventArgs e)
        {
            // Code to execute before each request.
            // Set the ParseDependentsRequests value on the request
            e.Request.ParseDependentRequests = m_parseDependents;
        }

        // Properties for the plugin.
        [DefaultValue(true)]
        [Description("All requests will have their ParseDependentsRequests property set to this value")]
        public bool ParseDependents
        {
            get
            {
                return m_parseDependents;
            }
            set
            {
                m_parseDependents = value;
            }
        }
    }
}

参照

WebTestRequestPlugin
ロード テスト用のカスタム コードおよびカスタム プラグインの作成
方法 : 要求レベルのプラグインを作成する
Web パフォーマンス テストのカスタム抽出規則のコーディング
Web パフォーマンス テストのカスタム検証規則のコーディング
方法 : ロード テスト プラグインを作成する
[廃版] 方法: コード化された Web パフォーマンス テストを作成する
方法: 既存の Web パフォーマンス テストを編集する