Перейти к содержимому

Фотография

Selenium Grid (parallel testing)


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 7

#1 Black_Diamond

Black_Diamond

    Новый участник

  • Members
  • Pip
  • 2 сообщений

Отправлено 05 ноября 2010 - 11:24

Доброго времени суток! Возможно не вовремя, но горит вопрос про параллельный запуск скрипта в нескольких браузерах.

Используемая версия Selenium Grid - 1.0.8.
Используемая версия PHPUnit - 3.4.9.
Пока что пытаюсь работать только под одной системой - Windows 7, далее пойдут и виртуалки с разными версиями браузеров

Содержимое build.xml из Selenium Grid в аттаче (попытался его изменить согласно мануалу на http://selenium-grid...and-tuning.html, но безуспешно, скрипт запускается последовательно в указанных браузерах).

Порядок запуска приложений:
1) Запуск HUB (Содержимое батника, который запускает HUB - ant -f D:\seleniumgrid\build.xml launch-hub);
2) Запуск RC для FF (Содержимое батника, который запускает RC для FF - ant -f D:\seleniumgrid\build.xml -Dport=5565 -Dhost=http://localhost -Denvironment="*firefox" -DhubURL=http://localhost:1234 launch-remote-control)
3) Запуск RC для Chrome (Содержимое батника, который запускает RC для FF - ant -f D:\seleniumgrid\build.xml -Dport=5566 -Dhost=http://localhost -Denvironment="*googlechrome" -DhubURL=http://localhost:1234 launch-remote-control)
4) Запуск RC для IE (Содержимое батника, который запускает RC для FF - ant -f D:\seleniumgrid\build.xml -Dport=5567 -Dhost=http://localhost -Denvironment="*iexplore" -DhubURL=http://localhost:1234 launch-remote-control)
5) Запуск RC для Safari (Содержимое батника, который запускает RC для FF - ant -f D:\seleniumgrid\build.xml -Dport=5568 -Dhost=http://localhost -Denvironment="*safari" -DhubURL=http://localhost:1234 launch-remote-control)
6) В командной строке - phpunit RegTest.php
(Начальное содержимое файла RegTest.php:

<?php
require_once 'D:\PHP\PEAR\PHPUnit\Extensions\SeleniumTestCase.php';

class RegTest extends PHPUnit_Extensions_SeleniumTestCase
{
public static $browsers = array(
array (
'browser' => '*firefox',
'timeout' => 30000,
'port' => 5565,
),
array (
'browser' => '*safari',
'timeout' => 30000,
'port' => 5568,
),
array (
'browser' => '*iexplore',
'timeout' => 30000,
'port' => 5567,
),
array (
'browser' => '*googlechrome',
'timeout' => 30000,
'port' => 5566,
));

function setUp() {
//чтение домена/браузера
$h = fopen("urls.csv", "r");
while($data = fgetcsv($h,0,";"))
{
$domen = $data[0];
$browser = $data[1];
break;
fclose($h);
$this->setBrowserUrl("$domen");
// $this->setBrowser("*iexplore");
// $this->setBrowserUrl("http://www.match.com");
}
}

function tearDown() {
}

и т.д.

Сам по себе код RegTest.php в Selenium RC отрабатывает успешно, а вот с Selenium Grid есть проблемы - не могу запустить тест параллельно в разных браузерах. Пока один тест полностью не пройдет в одном браузере, во втором он не запустится)

Также была замечена еще одна проблема во время запуска Selenium RC из-под Selenium Grid - [java] WARNING: Unregistering unreliable RC [RemoteControlProxy http://localhost:5566#false], и так на каждом. Прошу помочь мне советом, как откорректировать Grid, чтобы он мог запускать тесты параллельно? Заранее благодарен.

Прикрепленные файлы

  • Прикрепленный файл  build.xml   7,17К   19 Количество загрузок:

  • 0

#2 Black_Diamond

Black_Diamond

    Новый участник

  • Members
  • Pip
  • 2 сообщений

Отправлено 05 ноября 2010 - 13:14

Может это даже не в build.xml... Кто сталкивался с этой проблемой, помогите ее решить. Спасибо!
  • 0

#3 adzynia

adzynia

    Постоянный участник

  • Members
  • PipPipPip
  • 210 сообщений
  • ФИО:Дзыня Андрей


Отправлено 12 января 2011 - 17:35

Проблема не в selenium grid, а в phpunit.

Чтобы добиться паралельного выполнения, каждый тест должен запускаться в отдельном потоке. Это очень красиво реализовано в testNG. В phpunit же есть аннотация @runTestsInSeparateProcesses или ключ --process-isolation . Но они не работаю. Себастьян Бергман(разработчик phpunit) обещает исправить этот баг в версии 4.x

Будем ждать, а пока ребята из saurcelabs нашли вот такой workaround.

Так же можно попробовать реализовать свое распределение тестов с помощью maven и/или других build тулов.
  • 0

#4 sttester

sttester

    Активный участник

  • Members
  • PipPip
  • 111 сообщений

Отправлено 13 марта 2014 - 04:49

Вышел релиз phpunit 4, но прошло много времени и ссылки на аннотации и ключи ведут на главную страницу phpunit. Может кто новые опубликует ссылки ?


  • 0

#5 vmaximv

vmaximv

    Опытный участник

  • Members
  • PipPipPipPip
  • 350 сообщений

Отправлено 13 марта 2014 - 07:10

А на главной странице phpunit'а на линк "Documentation" нажать боитесь?


  • 0

#6 leipreachan

leipreachan

    Активный участник

  • Members
  • PipPip
  • 95 сообщений
  • Город:Москва

Отправлено 13 марта 2014 - 07:23

Проблема не в selenium grid, а в phpunit.

Чтобы добиться паралельного выполнения, каждый тест должен запускаться в отдельном потоке. Это очень красиво реализовано в testNG. В phpunit же есть аннотация @runTestsInSeparateProcesses или ключ --process-isolation . Но они не работаю. Себастьян Бергман(разработчик phpunit) обещает исправить этот баг в версии 4.x

Будем ждать, а пока ребята из saurcelabs нашли вот такой workaround.

Так же можно попробовать реализовать свое распределение тестов с помощью maven и/или других build тулов.

параллельте своими средствами. например, через ant

проблема запуска своими средствами в том, что накладные расходы очень высокие. но по-другому пока никак


  • 0

#7 Master_lomaster

Master_lomaster

    Новый участник

  • Members
  • Pip
  • 50 сообщений

Отправлено 13 марта 2014 - 07:59

Также была замечена еще одна проблема во время запуска Selenium RC из-под Selenium Grid - [java] WARNING: Unregistering unreliable RC [RemoteControlProxy http://localhost:5566#false], и так на каждом. Прошу помочь мне советом, как откорректировать Grid, чтобы он мог запускать тесты параллельно? Заранее благодарен.

У вас хаб запущен с портом по умолчанию (4444), а при запуске нодов указывается порт 1234.

Также можете поэскспериментировать с параметром запуска хаба -maxSession. Хотя, вроде по умолчанию 5...

 

P.S.: зачем такая древняя версия PHPUnit?

P.P.S.: код следует вставлять с форматированием, читать же невозможно...


  • 0

#8 vmaximv

vmaximv

    Опытный участник

  • Members
  • PipPipPipPip
  • 350 сообщений

Отправлено 13 марта 2014 - 08:03

 

P.S.: зачем такая древняя версия PHPUnit?

А вы на дату поста посмотрите хД


  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных