4

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

我认为有两种方法:

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

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

4

3 回答 3

8

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

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

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

于 2012-05-29T16:04:41.757 回答
1

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

于 2012-05-29T14:50:21.523 回答
1

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

require 'rubygems'
  require 'cucumber'

  require 'cucumber/rake/task'

  Cucumber::Rake::Task.new( :features) do |t|
    t.cucumber_opts = "features --tags @testset_1 "
end
于 2013-04-18T21:52:04.983 回答