次の方法で共有


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

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

[!メモ]

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

要件

  • Visual Studio Ultimate

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

  1. Web パフォーマンス テストが含まれている 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. ソリューション エクスプローラーで、ロード テスト プラグインを追加し、**[参照の追加]**を選択するロード テストを含む Web パフォーマンス テストおよびロード テスト プロジェクトの最上位ノードを右クリックします。

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

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

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

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

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

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

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

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

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

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

    [!メモ]

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

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

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

    Caution メモ注意

    プラグインを使用する 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. プラグインをテストまたは該当する場所から削除し、その後、追加し直します。

使用例

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 パフォーマンス テストのカスタム プラグインの作成と使用