2010-07-21 193 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