コード化された Web パフォーマンス テストの生成と実行
発行: 2016年7月
Web パフォーマンス テストは、Web アプリ内を移動することによって記録されます。 これらのテストは、ロード テストに含まれており、複数ユーザーのストレス下で Web アプリケーションのパフォーマンスを測定するために使用されます。 Web パフォーマンス テストは、コード ベースのスクリプトに変換したうえで、他のソース コードと同様に編集およびカスタマイズすることができます。 たとえば、ループ構造と分岐構造を追加できます。
コード化された Web パフォーマンス テストを生成する
Web パフォーマンス テストを作成していない場合は、「Record and run a web performance test」を参照してください。
コード化されたテストを生成します。
テストの名前を指定します。
新しいコード化されたテストがコード エディターで開きます。
ソリューションに、どの Web パフォーマンスおよびロード テスト プロジェクト テンプレートを追加したかによって、コードは Visual Basic または Visual C# のいずれかで生成されます。
このコードでは、記録されたテストにあった各検証規則と Web 要求が、C# の GetRequestEnumerator() メソッドまたは Visual Basic の Run() メソッドに含まれていることを確認できます。
単純なコードの追加を行います。これには、メソッドの終わりまでスクロール ダウンし、最後の Web 要求のコードの後に、次のコードを追加します。
if (DateTime.Today.DayOfWeek == DayOfWeek.Wednesday) { WebTestRequest customRequest = new WebTestRequest("http://weather.msn.com/"); yield return customRequest; } else { WebTestRequest customRequest = new WebTestRequest("https://msdn.microsoft.com/"); yield return customRequest; }
If DateTime.Today.DayOfWeek = DayOfWeek.Wednesday Then Dim customRequest As WebTestRequest = New WebTestRequest("http://weather.msn.com/") MyBase.Send(customRequest) Else Dim customRequest As WebTestRequest = New WebTestRequest("https://msdn.microsoft.com/") MyBase.Send(customRequest) End If
ソリューションをビルドし、カスタム コードのコンパイルを確認します。
テストを実行します。
実行日が水曜日であるため、次のようになります。
Q&A
Q: 同時に複数のテストを実行できますか。
A: はい。ソリューション エクスプローラーでコンテキスト メニューを使用してください。
Q: データ ソースは、コード化されたテストを生成する前か後のどちらに追加すべきでしょうか。
A: データ ソースは、コード化されたテストを生成する前に追加する方が簡単です。こうすると、コードが自動的に生成されます。
データ ソースが含まれるコード化されたテストを実行すると、次のエラー メッセージが表示されることがあります。
Could not run test <Test Name> on agent <Computer Name>: Object reference not set to an instance of an object.
これは、テスト クラスに対して DataSourceAttribute が定義されていても、対応する DataBindingAttribute がない場合に発生します。 このエラーを解決するには、適切な DataBindingAttribute を追加して削除するか、コード内でコメント アウトします。
Q: 検証規則および抽出規則は、コード化されたテストを生成する前か後のどちらに追加すべきでしょうか。
A: 検証規則および抽出規則は、コード化されたテストを生成する前に追加する方が簡単です。ただし検証目的の場合はコード化された UI テストを使用することをお勧めします。