2014-02-07 21 views
0

我正在爲尚未公開的HTTP API編寫客戶端。 根據我得到的規範,我嘲笑了一個模擬API的服務器,來測試我的客戶端如何反應。模擬HTTP API客戶端的高負載

該服務器是一個非常簡單的Rack應用程序,當前運行在WEBRick上。 API客戶端與此僞造API進行交互,並在不同的測試用例中正確執行。

希望我只需在API生效時更改配置文件中的主機名。

但是,我知道一個事實,即API將在重負載時投入使用。我的客戶將因此最有可能不得不面對:

  • HTTP超時
  • 抖動
  • 丟棄的TCP連接
  • 503迴應
  • ...

我知道,我的客戶在理想情況下表現良好,但我怎樣才能隨機(或不是隨機)在我的測試用例中引入這些行爲,以驗證客戶端是否處理了這些錯誤直接?

是否有某種反向代理可以配置爲在穩定網絡上的穩定服務器上提供數據時模擬這些錯誤(本例中爲localhost上的本地服務器)?

回答

0

您可以嘗試Net Limiter(http://www.netlimiter.com/)來調整帶寬。

另一方面,爲了進行更準確的模擬,您需要控制服務器和客戶端。

例如,要模擬超時條件,您的模擬服務器可以接收來自HTTP API客戶端的請求,然後停止,從而觸發客戶端的超時。

您自己的模擬/測試服務器的其他好處是您可以模擬丟棄的TCP連接(僅關閉新接收的客戶端連接),50倍響應,無效響應,協議中斷響應等等。