2012-09-03 58 views
0

總結集成測試 - 模仿預期延遲

如何創建「一體化」試驗模擬從外部系統預計延遲?

詳細

我有一個應用程序的「主」,與多個外部系統通信(通過Web服務),我稱之爲「夥伴」。

我對合作夥伴的內部工作沒有興趣,但我需要完全測試Main。

對於主我目前有:

  • 爲每個單獨的可測試的塊單元測試[在每一個「水平」,以便測試在每類中的每個公共的方法(n層)和短截線每個依賴]
  • 從自上而下的測試(所以測試的表示層和存根只有這些合作伙伴的Web服務的所有公共方法)

我也想是創建一些集成測試集成測試,以確保代碼中主要提供正確的表演即

什麼是「正確性能」?那麼,產品經理可以說「所有視圖必須在2秒內返回數據」。我知道(通常情況下)給合作伙伴的電話需要(比如說)1.5秒,所以我可以用0.5秒內完成主代碼(2 - 1.5)時通過的秒錶寫我的集成測試。然而,在與同事的討論中,有人建議合作伙伴的存根應該包含1.5秒的預期延遲,因此我的測試應該是主代碼加上合​​作夥伴的存根應在PM指定的2秒內完成。

的QU:

  1. 什麼是建議的行爲嗎?
  2. 如果如所暗示的那樣,使用Rino Mocks進行剪枝是如何實現的?

謝謝大家

格里夫

+0

當確定運行時間時,請記住它們取決於運行它們的機器 - 構建服務器可能會比開發人員機器(或反之亦然)。 – seldary

+0

這是一個非常好的觀點,讓我懷疑這是否是錯誤的方法。 – DrGriff

回答

0

毫無意義 「的視圖都必須在2秒內恢復數據」。在限制響應時間時,您還應該考慮負載。當每10秒會有一個請求時,您的視圖可能會在2秒內返回。但是當每秒會有10k個請求時,你的響應時間將會「略微」增長。更好的性能要求是「當負載低於每秒z請求時x%的響應時間不會超過y秒」或類似的東西。

單元測試延遲也沒有意義。你應該運行全面的性能測試。選擇一個現有的工具,準備一些客戶端節點(由該工具控制),運行記錄/腳本客戶端對被測服務器的請求,並檢查響應時間,CPU和內存使用情況。然後將一個或多個模式節點添加到您的系統中,並檢查系統如何縮放