我被要求对我们客户托管的外部 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);
}
我认为有更好的方法来做到这一点?有什么改进建议还是完全错误?