2010-07-21 154 views
1

我看到有关负载测试Web服务的其他一些问题。但据我所知,这些都是同步负载测试工具。 (这意味着他们送一吨的请求,但去一次一个。)异步WCF Web服务负载测试

我要寻找一个工具,我可以说,“我想在准确的同一时间推出的100个请求”。

现在,我对整个负载测试的新东西很陌生,所以有可能这些工具是异步的,我只是想念它。

不管怎样,总之我的问题是:有没有进行负载测试WCF Web服务异步的好工具(即大量的线程)。

回答

3

一般来说,我建议你看看soapUI,这与测试Web服务有关。他们在专业版中有负载测试功能(我还没有使用过)。

此外,他们刚刚进入测试版产品loadUI。如果它和父母的产品差不多,那就值得一看。

1

你可以使用Visual Studio负载测试剂成分在多个客户机上运行,​​这将让你的异步运行,你有机器加载。 使用此功能有许可要求。

没有工具,可以让你在完全相同的瞬间施加载荷(毫秒内即),但是这是没有必要正确地进行负载测试的应用程序。

对于大多数需要在运行Visual Studio旗舰版将是绰绰有余得到一个了解你的web服务负载下如何执行一个负载测试服务器。

Visual Studio和大多数其他工具我想象会以异步方式施加负荷,但我认为你的观点,你想一次性将一组负荷。 这并不是真的必要,因为在实践中,负载不会以这种方式应用于服务。

预计高负载的服务的最佳选择是加载服务,直到达到给定数量的“每秒请求数”。找到应用程序应该预期的级别有点棘手,但是需要大致计算出您预期会有多少用户以及他们在给定时间段内使用它的数量。

另一个要做的测试是设置一个负载测试工具并运行负载,直到web服务开始执行不当或测试工具耗尽“oomph”并且无法再创建任何负载。

1

对于开发时间,您可以使用NLoad(http://nload.github.io) 在您的开发机器或测试环境中运行负载测试。

例如

public class MyTest : ITest 
{ 
    public void Initialize() 
    { 
    // Initialize your test, e.g., create a WCF client, load files, etc. 
    } 

    public void Execute() 
    { 
    // Send http request, invoke a WCF service or whatever you want to load test. 
    } 
} 

然后创建,配置和运行负载测试:

var loadTest = NLoad.Test<MyTest>() 
         .WithNumberOfThreads(100) 
         .WithDurationOf(TimeSpan.FromMinutes(5)) 
         .WithDeleyBetweenThreadStart(TimeSpan.Zero) 
         .OnHeartbeat((s, e) => Console.WriteLine(e.Throughput)) 
        .Build(); 

var result = loadTest.Run(); 
+0

有任何意见或反馈,这将大大appriciated – 2016-08-02 14:55:41