Проведение параллельных тестов селена с капибарой - PullRequest
8 голосов
/ 27 сентября 2011

Фон:

У меня есть набор интеграционных тестов Capybara , работающих на моем приложении Rails 3. Для других частей набора тестов я использую Rspec .

На моем компьютере с Mac OSX есть концентратор автономного сервера selenium 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, подключенный к хабу:

The hub console showing connected nodes

Я настроил капибару для работы с селеновым концентратором (который делегирует тесты узлам).

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 , настраивая капибару в соответствии с предложением, но это все равно только запускает один интеграционный тест.

Как мне запустить интеграцию на всех узлах internet_explorer одновременно?

Бонусный вопрос: Если бы я хотел запустить свои интеграционные тесты на всех подключенных узлах, независимо от возможностей браузера, как бы я это сделал?

Ответы [ 2 ]

3 голосов
/ 03 октября 2011

Здесь вы должны запустить одни и те же тесты для разных браузеров, поэтому можете попробовать запустить два процесса тестов, т.е. выполнить одну и ту же команду дважды.

Когда вы запустили узлы, Grid будет обрабатывать выполнение на разных узлах.

В вашем случае вы выполняете тест, и только в отношении набора / процесс запускается относительно Grid.Просто для тестирования Цель попробуйте запустить эти тесты дважды один за другим.Если вы не можете добиться этого, используйте Ant или аналогичные средства для контроля выполнения тестов.

1 голос
/ 01 октября 2011

Для IE webdrive вы можете запустить не более 1 теста на одном физическом узле!Если вы хотите добиться параллелизма с веб-драйвером IE, чем попытаться добавить / зарегистрировать больше физических узлов в концентраторе.

Что касается приведенного выше снимка экрана консоли концентратора, он также показывает только один значок IE.Неправильное сообщение «Поддерживает до 5 ....», но вы можете считать количество значков для соответствующего браузера, отображаемое под ним.

...