Недавно я написал много тестов на селен 1 для довольно сложного проекта.Все они написаны на php и работают без проблем на selenium-server 1.0.7.
Очевидно, что с Firefox 5 (и сегодня выпущен 6) selenium server 1.0.7 больше не работает.Я пробовал, но сервер просто открывает пустые окна.
Теперь я пытаюсь запустить эти тесты на сетке селена.Мне удалось получить концентратор и несколько запущенных пультов дистанционного управления с использованием grid v1, но они открывали только пустые окна, как это делал старый сервер.Поэтому я решил, что мне нужно перейти на grid v2.
По какой-то причине я могу подключить клиентов к концентратору, но если я попытаюсь запустить свои тесты на концентраторе, похоже, он не сможет подключитьсявообще («PHPUnit_Framework_Exception: не удалось подключиться к серверу Selenium RC»).Я попытался запустить их на автономном сервере Селена 2.4.0, и это, похоже, работает.
Я читал на форуме, что сетка селена 2 просто не работает с phpunit (пока?).
Как мне запустить мои тесты на сетке?Чего не хватает phpunit для подключения к серверу?Я ценю любую помощь!
Я настроил концентратор следующим образом:
java -jar selenium-server-standalone-2.4.0.jar -role hub
И двух рабов:
java -jar selenium-server-standalone-2.4.0.jar -role rc -hub http://127.0.0.1:4444/grid/register -port 5555
java -jar selenium-server-standalone-2.4.0.jar -role webdriver -hub http://127.0.0.1:4444/grid/register -port 5556
Кажется, что все работает до сих пор, как ясм. два узла в консоли сетки (http://localhost:4444/grid/console).
). Вот и вся инициализация, которую я выполняю в коде:
<?php
require_once 'PHPUnit/Extensions/SeleniumTestCase.php';
class Grid_Test extends PHPUnit_Extensions_SeleniumTestCase
{
public $captureScreenshotOnFailure = false;
public static $browsers = array(
'FFLinux' => array(
'name' => 'Firefox on Linux',
'browser' => '*firefox',
'host' => '127.0.0.1',
'port' => 4444,
'timeout' => 30000
));
public function setUp()
{
$this->setBrowserUrl('http://www.google.com');
}
public function testGridWorking()
{
$this->open('/');
$this->assertTrue(false);
}
}
Этот код по-прежнему работает на автономном сервере 2.4.0.последняя строка, как и ожидалось.
Кажется, что исключение выдается в PHPUnit / Extentions / SeleniumTestCase / Driver.php. Кажется, есть проблема.
protected function doCommand($command, array $arguments = array())
{
$url = sprintf(
'http://%s:%s/selenium-server/driver/?cmd=%s',
$this->host,
$this->port,
urlencode($command)
);
[...]
$handle = @fopen($url, 'r', FALSE, $context);
if (!$handle) {
throw new PHPUnit_Framework_Exception(
'Could not connect to the Selenium RC server.'
);
}
[...]
}
Когда я запрашиваю http://localhost:4444/selenium-driver/driver в браузере, я получаю:
HTTP ERROR: 500
org.openqa.grid.internal.GridException: Session not available - []
RequestURI=/selenium-server/driver
Есть идеи, как это исправить? Мне нужно изменить этот URL, может быть?