クライアントがホストする外部Webサービスの負荷テストを依頼されました。
基本的に、サービスに複数のWebリクエストを送信し、サービスがそれらすべてを処理するのにかかる時間を測定します。異なるマシンからWebサービスにアクセスする複数の異なるユーザーをシミュレートすること。テストでは、Webサービスがこれを処理できることを確認して、基本的にクライアントにいくつかのメトリックと例を提供します。たとえば、応答するのに50リクエストかかる時間などです。
これは、SoapUI/LoadUIなどのツールを使用して実現できることを認識しています。
とにかくC#を使用して負荷テストを作成できることを知りたいですか?
現在、私は次のようなものを持っています:
[Test]
public void TestService50Requests()
{
List<WebRequest> requests = CreateMultipleRequests(50); //Creates web request objects
string timeSpan = TimeMultipleRequests(requests);
Console.WriteLine("50 Requests runtime: " + timeSpan);
}
private void TimeMultipleRequests(List<WebRequest> requests)
{
var stopWatch = new Stopwatch();
stopWatch.Start();
foreach (var request in requests)
{
request.GetResponse();
}
stopWatch.Stop();
var timeSpan = stopWatch.Elapsed;
return String.Format("{0:00} hours, {1:00} minutes, {2:00} seconds, {3:00} milliseconds", timeSpan.Hours, timeSpan.Minutes, timeSpan.Seconds, timeSpan.Milliseconds / 10);
}
私はこれを行うためのより良い方法があると思いますか?改善のための提案はありますか、それともこれは完全に間違っていますか?