【问题标题】:Parallelizing Cucumber BDD test on multiple machines using Gems or Jenkins (or both)使用 Gems 或 Jenkins(或两者)在多台机器上并行 Cucumber BDD 测试
【发布时间】:2012-06-03 12:18:15
【问题描述】:

我正在使用带有 Cucumber(带有 page_object gem)、WatirJenkins 的 BDD 运行一个项目。目前,我们正在寻找并行化测试的最佳方法,以减少在多个虚拟机上使用不同的导航器等进行测试的时间。

我认为有两种方法:

  • 使用 Ruby 工具,如 parallel_test、Hydra、TestJour、TestBot...
  • 或通过 Jenkins 组织一切,使用路径、标签等。
  • 以某种方式同时使用两者

为了以正确的方式努力……您认为 Jenkins 是在多台机器上进行并行测试的好选择,还是我应该给其他工具一个机会?欢迎提出建议:)

【问题讨论】:

  • 我们在开放空间部分的测试自动化集市上对此进行了一些很好的讨论。这也可能是一个很好的问题(因为它是对潜在方法等的更一般性的讨论),可以在 googlegroups 上的 Watir 和 Cucumber 组中提问

标签: cucumber jenkins watir selenium-grid parallel-testing


【解决方案1】:

我使用 Jenkins 将作业拆分到各种从机。当不需要并行测试时,这也允许不同用户对不同环境进行测试(测试人员测试、开发人员故障排除等)。很容易设置!

【讨论】:

    【解决方案2】:

    Jenkins 只是解决方案的一部分。您可以使用 parallel_tests 来同时运行多个 cuke(只要您的 Jenkins 服务器不在 Windows 上运行),但您仍然需要更多。

    您需要设置一个服务器网格来处理 watir 测试。我强烈建议您查看 Selenium Grid 2 (http://code.google.com/p/selenium/wiki/Grid2)。在远程 VM 上设置节点并在 Jenkins 服务器上启动集线器。然后 parallel_tests 可以并行运行测试,让它们连接到本地集线器,然后将它们发送到远程服务器执行。

    请注意 - 为了使其正常工作,您需要制定良好的测试数据管理策略。每个测试都需要能够独立运行。此外,他们每个人都应负责设置运行测试所需的数据,然后在测试执行后清理这些数据。

    【讨论】:

    • Cheezy - 如何配置它以使相同的测试同时在多个节点上运行?目前我有你上面描述的设置,但是节点运行不同的测试,我希望节点运行完全相同的测试(测试不同的操作系统/浏览器组合)
    • 如果您想要实时预览测试并能够录制和播放运行视频,请查看 Zalenium 作为常规 selenium 网格的替代品。 opensource.zalando.com/zalenium 。使用并行黄瓜效果也很好,但您可能希望使用--group-by scenarios 选项来获得更好的效率
    【解决方案3】:

    您可以通过将测试分布到不同的标签中进行并行化,然后在每台测试机器上运行不同的标签集。

    require 'rubygems'
      require 'cucumber'
    
      require 'cucumber/rake/task'
    
      Cucumber::Rake::Task.new( :features) do |t|
        t.cucumber_opts = "features --tags @testset_1 "
    end
    

    【讨论】:

      猜你喜欢
      • 2016-08-27
      • 1970-01-01
      • 2015-06-11
      • 2012-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多