繁体   English   中英

使用水豚进行平行硒测试

[英]Running parallel selenium tests with capybara

背景:

我有一组针对我的Rails 3应用程序运行的Capybara集成测试。 对于测试套件的其他部分,我正在使用Rspec

我的Mac OSX开发人员计算机上有一个硒2.6.0独立服务器中心。

java -jar selenium-server-standalone-2.6.0.jar -role hub

我正在运行几个虚拟机,每个虚拟机都通过一个硒节点连接到集线器:

java -jar selenium-server-standalone-2.6.0.jar -role webdriver -hub http://0.0.1.12:4444/grid/register port 5555 -browser browserName="internet explorer",version=8,platform=WINDOWS

效果很好,在此屏幕快照中,控制台显示我已将IE7和IE8浏览器连接到集线器:

集线器控制台显示已连接的节点

我已经将capybara设置为针对硒集线器运行(将测试委托给节点)。

Capybara.app_host = "myapp.dev"
Capybara.default_driver = :selenium
Capybara.register_driver :selenium do |app|
  Capybara::Selenium::Driver.new(app,
    :browser => :remote,
    :url => "http://localhost:4444/wd/hub",
    :desired_capabilities => :internet_explorer)
end

它可以工作,但是只能在单个internet_explorer节点上运行测试。 似乎是“第一批”。 如果我将其关闭,则测试将成功在另一个节点上运行。

我一直在尝试parallel_tests项目,按建议配置capybara,但这仍然只能启动一个集成测试。

如何在所有internet_explorer节点上同时运行集成?

额外的问题:如果我想在所有连接的节点上运行集成测试,而不考虑浏览器的功能,我该怎么做?

在这里,您必须为不同的浏览器触发相同的测试,因此可以尝试启动两个测试过程,即两次运行同一命令。

启动节点后,网格将处理不同节点上的执行。

在您的情况下,您正在执行测试,并且仅针对Grid启动套件/进程。 仅出于测试目的,尝试一次又一次触发这些测试两次。 如果您无法通过此操作来实现,请使用Ant或类似的方法来控制测试的执行。

对于IE WebDrive,您可以在一个物理节点上最多运行1个测试! 如果要使用IE Webdriver实现并行性,可以尝试通过向集线器添加/注册更多物理节点来实现。

关于集线器控制台的以上屏幕截图,它还仅显示一个IE图标。 出现错误信息“最多支持5 ....”,但是您可以考虑显示在其下方的各个浏览器的图标编号。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM