次の方法で共有


方法 : ロード テスト プラグインを作成する

このトピックの内容は、次の製品に該当します。

Visual Studio Ultimate

Visual Studio Premium

Visual Studio Professional 

Visual Studio Express

トピック該当 トピック該当なし トピック該当なし トピック該当なし

ロード テスト プラグインを作成すると、ロード テストを実行するときに、さまざまな時間にコードを実行できます。 プラグインを作成して、ロード テストの組み込みの機能を拡張または変更します。 たとえば、ロード テスト プラグインのコードを作成して、ロード テストの実行中にロード テストのパターンを設定または変更できます。 これを行うには、ILoadTestPlugin インターフェイスを継承するクラスを作成する必要があります。 このクラスは、このインターフェイスの Initialize メソッドを実装する必要があります。 詳細については、「ILoadTestPlugin」を参照してください。

注意

Web パフォーマンス テスト用のプラグインを作成することもできます。 詳細については、「方法: Web パフォーマンス テスト プラグインを作成する」を参照してください。

Visual C# を使用してロード テスト プラグインを作成するには

  1. Web パフォーマンス テストを含むテスト プロジェクトを開きます。

    詳細については、「方法: 自動テスト用にテスト プロジェクトを作成および構成する」を参照してください。

  2. ロード テストをテスト プロジェクトに追加して、Web パフォーマンス テストを実行するように構成します。

    詳細については、「方法: 新しいロード テスト ウィザードを使用して新しいロード テストを作成する」を参照してください。

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

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

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

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

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

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

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

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

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

  11. [.NET] タブをクリックします。スクロール ダウンし、[Microsoft.VisualStudio.QualityTools.LoadTestFramework] を選択します。

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

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

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

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

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

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

  17. コード エディターで、Microsoft.VisualStudio.TestTools.LoadTesting 名前空間について using ステートメントを追加します。

  18. クラス ライブラリ プロジェクトで作成されたクラスに対して、ILoadTestPlugin インターフェイスを実装します。 実装のサンプルについては、次の例を参照してください。

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

  20. ロード テストの最上位ノードを右クリックし、[ロード テスト プラグインの追加] をクリックします。

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

  21. [プラグインの選択] で、ロード テスト プラグイン クラスを選択します。

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

    注意

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

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

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

    ヒント

    プラグインを使用する 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. テスト プロジェクトで、参照に関する警告が表示されます。 プラグイン dll への参照を削除し、再度追加します。

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

使用例

LoadTestFinished イベントが発生した後でカスタム コードを実行するロード テスト プラグインを次のコードに示します。 このコードがリモート コンピューターのテスト エージェントで実行され、テスト エージェントにローカル ホスト SMTP サービスがない場合、メッセージ ボックスが開いているためにロード テストの状態は "処理中" のままです。

注意

次のコードでは、System.Windows.Forms への参照を追加する必要があります。

using System;
using Microsoft.VisualStudio.TestTools.LoadTesting;
using System.Net.Mail;
using System.Windows.Forms;

namespace LoadTestPluginTest
{
    public class MyLoadTestPlugin : ILoadTestPlugin
    {
        LoadTest myLoadTest;

        public void Initialize(LoadTest loadTest)
        {
            myLoadTest = loadTest;
            myLoadTest.LoadTestFinished += new
                EventHandler(myLoadTest_LoadTestFinished);
        }

        void myLoadTest_LoadTestFinished(object sender, EventArgs e)
        {
            try
            {
                // place custom code here
                MailAddress MyAddress = new MailAddress("someone@example.com");
                MailMessage MyMail = new MailMessage(MyAddress, MyAddress);
                MyMail.Subject = "Load Test Finished -- Admin Email";
                MyMail.Body = myLoadTest..Name + " has finished.";

                SmtpClient MySmtpClient = new SmtpClient("localhost");
                MySmtpClient.Send(MyMail);
            }

            catch (SmtpException ex)
            {
                MessageBox.Show(ex.InnerException.Message +
                    ".\r\nMake sure you have a valid SMTP.", "LoadTestPlugin", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);
            }
        }
    }
} 

8 個のイベントがロード テストに関連付けられており、これらをロード テスト プラグインが処理することで、ロード テストでカスタム コードが実行されます。 次に示すイベントを使用して、ロード テストの実行のさまざまな時間にアクセスできます。

参照

処理手順

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

参照

ILoadTestPlugin

その他の技術情報

ロード テストと Web パフォーマンス テストのカスタム プラグインの作成と使用