PHPUnit + Selenium WebDriver


(bncom) #1

Вопросов несколько:

1. Если наследуюсь от PHPUnit_Extensions_SeleniumTestCase, то браузер (использую Firefox) не открывается, а в консоль падает ошибка:

Invalid response while accessing the Selenium Server at 'http://localhost:4444/selenium-server/driver/': ERROR Server Exception: sessionId should not be null; has this session been started yet?
Invalid response while accessing the Selenium Server at 'http://localhost:4444/selenium-server/driver/': Failed to start new browser session: Error while launching browser

Если наследуюсь от PHPUnit_Extensions_Selenium2TestCase, то ошибки уже нет, браузер открывается нормально. Почему так проиходит?

2. PHPUnit_Extensions_SeleniumTestCase - это использование Selenium RC, а PHPUnit_Extensions_Selenium2TestCase - WebDriver, правильно?

3. У меня тесты, написанные через Selenium IDE. Теперь я хочу их перенести на PHPUnit. Я выбрал формат экспорта "PHP (PHPUnit)", но код, который генерируется, не валиден под WebDriver:

public function testMyTestCase()
  {
    $this->open('http://site.com');
    $this->assertEquals('http://site.com', $this->getLocation());
    $this->assertEquals('Page title', $this->getTitle());
    $this->assertTrue($this->isElementPresent("//*/div[@id='wrapper-slideshow']/div[@class='slider-wrapper theme-default']/div[@id='slider']"));

  }

Есть ли инструменты по переводу в валидный код под WebDriver? Или придется все руками переписывать, что, естественно, совсем не айс. Также хотелось бы увидеть реальные примеры на PHP для WebDriver. Если будут примеры, то сразу станет все понятно, но пока что все как темный лес.

Надеюсь на помощь начинающему автоматизатору.

 


(Mykhailo Poliarush) #2

особоо помочь с PHP немогу, так как особо не пользовался 

но примеры кода можно найти 

http://edvanbeinum.com/using-selenium-2-phpunit-to-automate-browser-testing

http://testigniter.blogspot.com/2012/01/running-selenium-2-webdriver-using.html


(Dmitry Kovpak) #3

Я тоже начинающий и пользовался FB web driver. Погуглите. Пару дней помучался, но потом методом научного тыка заставил все работать.
Редактировать код, записанный в Selenium придется. Из опыта с другими инструментами следует, что изменения вносятся в каждый записанный тест кейс.
Вот пример простенького работающего тесткейса:

<?php

class TestYandex extends PHPUnit_Extensions_SeleniumTestCase
{
protected function setUp()
{
$this->setBrowser("*firefox");
$this->setBrowserUrl("http://www.yandex.ru/");
}

public function testMyTestCase()
{
$this->open("/");
$this->verifyText("//button[@type='submit']", "Найти");
$this->click("id=text");
$this->type("id=text", "agilefusion");
$this->click("//button[@type='submit']");
$this->waitForPageToLoad("30000");
/*$this->selectWindow("name=27049");*/
$this->assertEquals("AgileFusion", $this->getText("css=b.needsclick"));
}
}
?>