2015-05-21 39 views
1

在我的公司,我们正在使用Rails + Sidekiq加入我们的用户。当他们第一次登录时,我们通过数据管道来提供它们,以解析/聚合数据,并调用外部API。当一个工人完成时,它会为该用户的管道中的下一个阶段排队。如何复制Sidekiq负载测试的生产环境

我想对我们的管道进行改进,因为(在某些情况下容易堵塞/挨饿)。但我不想推出产品,而是想创建一个可以测试任意修改和用例的本地环境 - 这就是这个问题的全部内容。具体来说,我想:

  • 创建接近生产的Sidekiq行为
  • 方面的一个开发环境,知道在哪个工人正在排队将类似于(如果不匹配)的生产订单
  • 假/模拟调用外部服务
  • 测试任意情况下,如
    • 1,10,1000名并发注册,等等
    • 低到高方差在响应时间和再外部服务
  • Quantify的工作人员的绩效责任比较结果 - 时间开始,花时间,花时间空闲/阻塞

根据我的搜索,现在我使用RSpec的运行我的任意考虑用FactoryGirl模拟外部请求(既伪造响应数据又改变响应时间)。我不知道这是否是一个好方法。谢谢

回答

0

我不认为rspec和factory_girl适合负载测试。 他们的主要目的是单元测试。

如果我是你,我会运行另一套服务器,与生产完全相同。 然后,您可以编写一些水豚方案,这将模拟真正的用户与系统的迭代。

只有这样的方法才能保证您有效的负载测试结果。

如果你嘲笑所有的外部API请求,它会让你的应用程序快得多,所以你不会知道实际生产模式需要多长时间。

+0

感谢您的回复。为了澄清,我最感兴趣的是检查/比较工作如何在sidekiq中获得优先级,而不仅仅是表现。对于外部请求,实际进行调用对于我们的特定情况来说是一个挑战,并且可能并不理想,因为我们希望尽可能控制以专注于分析Sidekiq行为。 –

+0

无论如何,你应该运行sidekiq实例来进行压力测试。 所以它不会是经典的rspec测试。看来你需要一些定制的测试框架。不确定这些工具是否公开存在。 –

相关问题