方法 : ロード テスト プラグインを作成する
発行: 2016年7月
ロード テスト プラグインを作成すると、ロード テストを実行するときに、さまざまな時間にコードを実行できます。 プラグインを作成して、ロード テストの組み込みの機能を拡張または変更します。 たとえば、ロード テスト プラグインのコードを作成して、ロード テストの実行中にロード テストのパターンを設定または変更できます。 これを行うには、ILoadTestPlugin インターフェイスを継承するクラスを作成する必要があります。 このクラスは、このインターフェイスの Initialize メソッドを実装する必要があります。 詳細については、「ILoadTestPlugin」を参照してください。
注意
Web パフォーマンス テスト用のプラグインを作成することもできます。詳細については、「方法: Web パフォーマンス テスト プラグインを作成する」を参照してください。
必要条件
- Visual Studio Enterprise
Visual C# を使用してロード テスト プラグインを作成するには
Web パフォーマンス テストが含まれている、Web パフォーマンスとロード テストのプロジェクトを開きます。
詳細については、「How to: Create and Configure Test Projects for Automated Tests」を参照してください。
ロード テストをテスト プロジェクトに追加して、Web パフォーマンス テストを実行するように構成します。
詳細については、「[廃版] ロード テストの作成」を参照してください。
ソリューション エクスプローラーで、ソリューションを右クリックし、[追加] を選択して、[新しいプロジェクト] を選択します。
[新しいプロジェクトの追加] ダイアログ ボックスが表示されます。
[インストールされているテンプレート] の [Visual C#] を選択します。
テンプレートの一覧で、[クラス ライブラリ] を選択します。
[名前] ボックスに、クラスの名前を入力します。
[OK] をクリックします。
新しいクラス ライブラリ プロジェクトがソリューション エクスプローラーに追加され、新しいクラスがコード エディターに表示されます。
ソリューション エクスプローラーで、新しいクラス ライブラリの [参照設定] フォルダーを右クリックし、[参照の追加] を選択します。
[参照の追加] ダイアログ ボックスが表示されます。
[.NET] タブを選択します。スクロール ダウンし、[Microsoft.VisualStudio.QualityTools.LoadTestFramework] を選択します。
[OK] をクリックします。
Microsoft.VisualStudio.QualityTools.LoadTestFramework への参照がソリューション エクスプローラーの [参照設定] フォルダーに追加されます。
ソリューション エクスプローラーで、ロード テスト プラグインの追加先であるロード テストを含んでいる Web パフォーマンスおよびロード テスト プロジェクトの最上位ノードを右クリックし、[参照の追加] を選択します。
[参照の追加] ダイアログ ボックスが表示されます。
[プロジェクト] タブをクリックし、[クラス ライブラリ プロジェクト] を選択します。
[OK] をクリックします。
コード エディターで、using 名前空間について Microsoft.VisualStudio.TestTools.LoadTesting ステートメントを追加します。
クラス ライブラリ プロジェクトで作成されたクラスに対して、ILoadTestPlugin インターフェイスを実装します。 実装のサンプルについては、次の例を参照してください。
このコードを記述した後で、新しいプロジェクトをビルドします。
ロード テストの最上位ノードを右クリックし、[ロード テスト プラグインの追加] を選択します。
[ロード テスト プラグインの追加] ダイアログ ボックスが表示されます。
[プラグインの選択] で、ロード テスト プラグイン クラスを選択します。
[選択したプラグインのプロパティ] ペインで、実行時に使用するプラグインの初期値を設定します。
注意
プラグインのプロパティをパブリック、設定可能、および基本型 (整数型、ブール型、文字列型など) として設定して、任意の数だけ公開できます。Web パフォーマンス テスト プラグインのプロパティは、後で [プロパティ] ウィンドウを使用して変更することもできます。
[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) を作成したのに、プラグインが元のプラグイン バージョンを参照したままになっている場合です。この問題を解決するには、次の手順を実行します。
-
Web パフォーマンスとロード テストのプロジェクトで、参照に関する警告が表示されます。プラグイン DLL への参照を削除し、再度追加します。
-
プラグインをテストまたは該当する場所から削除し、その後、追加し直します。
-
使用例
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 個のイベントがロード テストに関連付けられており、これらをロード テスト プラグインが処理することで、ロード テストでカスタム コードが実行されます。 次に示すイベントを使用して、ロード テストの実行のさまざまな時間にアクセスできます。
参照
ILoadTestPlugin
ロード テスト用のカスタム コードおよびカスタム プラグインの作成
方法: Web パフォーマンス テスト プラグインを作成する