2015-05-21 40 views
1

在我的公司,我們正在使用Rails + Sidekiq加入我們的用戶。當他們第一次登錄時,我們通過數據管道來提供它們,以解析/聚合數據,並調用外部API。當一個工人完成時,它會爲該用戶的管道中的下一個階段排隊。如何複製Sidekiq負載測試的生產環境

我想對我們的管道進行改進,因爲(在某些情況下容易堵塞/捱餓)。但我不想推出產品,而是想創建一個可以測試任意修改和用例的本地環境 - 這就是這個問題的全部內容。具體來說,我想:

  • 創建接近生產的Sidekiq行爲
  • 方面的一個開發環境,知道在哪個工人正在排隊將類似於(如果不匹配)的生產訂單
  • 假/模擬調用外部服務
  • 測試任意情況下,如
    • 1,10,1000名併發註冊,等等
    • 低到高方差在響應時間和再外部服務
  • Quantify的工作人員的績效責任比較結果 - 時間開始,花時間,花時間空閒/阻塞

根據我的搜索,現在我使用RSpec的運行我的任意考慮用FactoryGirl模擬外部請求(既僞造響應數據又改變響應時間)。我不知道這是否是一個好方法。謝謝

回答

0

我不認爲rspec和factory_girl適合負載測試。 他們的主要目的是單元測試。

如果我是你,我會運行另一套服務器,與生產完全相同。 然後,您可以編寫一些水豚方案,這將模擬真正的用戶與系統的迭代。

只有這樣的方法才能保證您有效的負載測試結果。

如果你嘲笑所有的外部API請求,它會讓你的應用程序快得多,所以你不會知道實際生產模式需要多長時間。

+0

感謝您的回覆。爲了澄清,我最感興趣的是檢查/比較工作如何在sidekiq中獲得優先級,而不僅僅是表現。對於外部請求,實際進行調用對於我們的特定情況來說是一個挑戰,並且可能並不理想,因爲我們希望儘可能控制以專注於分析Sidekiq行爲。 –

+0

無論如何,你應該運行sidekiq實例來進行壓力測試。 所以它不會是經典的rspec測試。看來你需要一些定製的測試框架。不確定這些工具是否公開存在。 –

相關問題