Selenium-PHPUnit, Селеновая сетка

Перед тем, как опубликовать это, я много проверял на этом сайте и в Google, чтобы понять свою проблему. Я тестирую свое веб-приложение, которое в основном написано на PHP с использованием фреймворка Symfony2.

Я использую Selenium для выполнения своих функциональных тестов. Все, что я хочу сделать на данный момент, - это запустить мои функциональные тесты параллельно на моем локальном компьютере с использованием Selenium Grid. Что я делаю, так это записываю тест в Selenium IDE и экспортирую тестовый пример в формате phpunit. Я пытался использовать селеновую сетку, но мои тесты phpunit все еще выполняются последовательно.

Что я сделал:

1) java -jar selenium-server-standalone-2.24.1.jar -role hub

2) java -jar selenium-server-standalone-2.24.1.jar -role node -hub http://localhost:4444/grid/register -browser "browserName=firefox,maxInstances=2,maxSession=2"

3) ant (муравей)

В моем build.xml есть цель phpunit:

<target name="phpunit" description="Run unit tests">
  <exec executable="phpunit" failonerror="true"/>
</target>

В моем phpunit.xml присутствует эта часть кода:

<testsuites>
    <testsuite name="LoginSuite">
       <file suffix="Test.php">../../src/Tests/FunctionalTests/LoginSuite_testLoginTest.php</file>
    </testsuite>
</testsuites>

А мой LoginSuite_testLoginTest.php выглядит так:

<?php

namespace Tests\FunctionalTests;
use Tests\FunctionalTests\SetUpTest;

class LoginSuite_testLoginTest extends SetUpTest
{
  public function testLogin()
  {
    $this->open("/home");
    $this->click("link=Login");
    $this->type("id=username", "[email protected]");
    $this->type("id=password", "test");
    $this->click("id=_submit");
    $this->waitForPageToLoad("30000");
  }


  public function testLogin2()
  {
    $this->open("/home");
    $this->click("link=Login");
    $this->type("id=username", "[email protected]");
    $this->type("id=password", "test");
    $this->click("id=_submit");
    $this->waitForPageToLoad("30000");
  }
}
?>

На третьем шаге, когда я запускаю команду ant, я получаю ошибку причала 500 Проблема с доступом к / selenium-server / driver /

Если вместо выполнения:

java -jar selenium-server-standalone-2.24.1.jar -role node -hub http://localhost:4444  /grid/register -browser "browserName=firefox,maxInstances=2,maxSession=2"

Я делаю ту же команду без информации о браузере, она запускает мои тесты, но не параллельно ..., это странно.

Я видел, что для параллельного запуска тестов phpunit нам нужно создать собственный скрипт для этого. Так нужна ли мне селеновая сетка в этом случае ?? Я очень смущен. Спасибо за вашу помощь.


person Niknolty    schedule 24.07.2012    source источник


Ответы (2)


Существует параллельная оболочка для командной строки phpunit https://github.com/siivonen/parallel-phpunit так что писать не надо. Вам нужно, чтобы где-то работал Selenium Hub (с некоторыми подключенными к нему узлами). Затем вы запускаете свои тесты, указывая на это место, и концентратор будет проксировать вызовы на свободные узлы.

Мы используем parallel-phpunit и Selenium Grid с четырьмя узлами, подключенными к хабу. Наш CI запускает 30-минутные тесты Selenium за 3 минуты.

person user1132305    schedule 06.11.2012

Могли быть разные проблемы. Во-первых, при выполнении предварительно записанных шагов вы должны добавить seleniumProtocol = Selenium в аргумент «браузер», потому что по умолчанию это будет веб-драйвер.

person Stan E    schedule 04.04.2015