方法 : Web テスト プラグインを作成する
更新 : 2007 年 11 月
Web テスト プラグインでは、Web テストで主要な宣言ステートメントの外部にあるコードを分離し、再利用できます。カスタマイズされた Web テスト プラグインには、Web テストの実行時に一部のコードを呼び出す方法が用意されています。Web テスト プラグインは、テスト イテレーションごとに 1 回実行されます。また、テスト プラグインで PreRequest メソッドまたは PostRequest メソッドをオーバーライドすると、これらの要求プラグインは各要求のそれぞれ前または後に実行されます。
カスタマイズされた Web テスト プラグインは、WebTestPlugin 基本クラスから独自のクラスを派生することによって作成できます。
記録した Web テストではカスタマイズされた Web テスト プラグインを使用できるため、最小限のコードを記述するだけで、Web テストをより高度に制御できるようになります。ただし、コード化された Web テストでそれらを使用することもできます。詳細については、「方法 : コード化された Web テストを作成する」を参照してください。
メモ : |
---|
ロード テスト プラグインも作成できます。詳細については、「方法 : ロード テスト プラグインを作成する」を参照してください。 |
カスタム Web テスト プラグインを作成するには
Web テストを含むテスト プロジェクトを開きます。
テスト プロジェクトを作成する方法の詳細については、「方法 : テスト プロジェクトを作成する」を参照してください。
Web テストおよび Web テスト プラグインを格納するクラス ライブラリ プロジェクトを作成します。
作成したクラス ライブラリ プロジェクトを選択し、[参照の追加] を右クリックします。
[.NET] タブで、[Microsoft.VisualStudio.QualityTools.WebTestFramework] をクリックします。[OK] をクリックします。
テスト プロジェクト内を右クリックし、[参照の追加] をクリックします。
[プロジェクト] タブで、新しいクラス ライブラリを選択します。[OK] をクリックします。
プラグインのコードを作成します。まず、WebTestPlugin クラスから派生する新しいパブリック クラスを作成します。
イベント ハンドラ PreWebTest と M:Microsoft.VisualStudio.TestTools.WebTesting.WebTestPlugin.PostWebTest(System.Object,Microsoft.VisualStudio.TestTools.WebTesting.PostWebTestEventArgs) の一方または両方にコードを実装します。
このコードを記述した後で、新しいプロジェクトをビルドします。
Web テストを開きます。
Web テスト プラグインを追加するには、ツール バーの [Web テスト プラグインの設定] をクリックします。これにより、テスト プラグインが [Web テスト プラグインの設定] ダイアログ ボックスに表示されます。クラスを選択して、[OK] をクリックします。
メモ : Web テスト プラグインは、[プロパティ] ウィンドウでも変更できます。Web テスト ノードを選択して、F4 キーを押します。[プロパティ] ウィンドウに、[プラグイン] カテゴリと Web テストに追加したプラグインが表示されます。
使用例
次のコードでは、テストの反復処理を表す WebTestContext に項目を追加するカスタマイズされた Web テスト プラグインを作成します。
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.VisualStudio.TestTools.WebTesting;
namespace SampleRules
{
public class SampleWebTestPlugin : WebTestPlugin
{
// start counting iterations at 1 not 0
// so that the iteration number we give matches the run number
static int testIterationNumber = 1;
public override void PostWebTest(object sender, PostWebTestEventArgs e)
{
}
public override void PreWebTest(object sender, PreWebTestEventArgs e)
{
e.WebTest.Context["TestIterationNumber"] = testIterationNumber;
testIterationNumber++;
}
}
}