【问题标题】:optimize capybara times优化水豚时间
【发布时间】:2012-01-05 20:48:17
【问题描述】:

我在使用纯水豚(无黄瓜)的 Rails 应用程序中有用于验收测试的测试套件。

它有 220 个示例,需要 21 分钟才能完成。我的非 js 驱动程序是 rack_test,我的 js_driver 是 capybara-webkit 而不是 selenium。

我想缩短测试时间,但我不知道在这种测试中是否存在共同的瓶颈。

我有/曾经的一些想法:

  • 更改水豚服务器。它使用杂种作为后备。默认为薄。我安装了薄但我没有得到任何速度改进。似乎瘦的优势是并发性,而测试没有它。

  • 由于我在测试之间清理数据库,所以在我的应用程序私有部分的每个示例之前(大多数示例都是这样),我需要登录。这意味着它登录应用程序 200 次。有没有办法在示例之间保持会话以避免一次又一次地登录?

【问题讨论】:

    标签: ruby-on-rails optimization capybara


    【解决方案1】:

    我想到了两件事:

    1. 如果你运行多核https://github.com/grosser/parallel_tests,parallel_tests 可以提高你的测试速度

    2. 为您的测试登录提供后门登录路由可以通过绕过登录步骤来提高测试速度

    一般来说,验收测试很慢。这就是为什么我只使用它们来测试关键的用户工作流程。我试图将我的整个测试套件保持在 5 分钟的范围内。我真的认为快速的应用程序测试套件至关重要。这就是为什么我尝试在 Rails 测试之外放置大量逻辑,以便在一秒钟或更短的时间内完成测试运行。

    【讨论】:

    • 我刚刚实现了后门登录。好把戏!我在整个套房剃了 4 分钟(从 21 分钟到 17 分钟)。并行测试更复杂,因为我在截断模式下使用 database_cleaner。我去看看那个宝石。坦克!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多