В даной статья будет описан manual по установке и настройке Selenium RC + phpUnit с использованием IDE разработки NetBeans под ОС Windows. Если у вас еще не установлена java сделайте это.
Установка PHP
Скачиваем дистрибутив php(installer).
Запускаем установку. В поле выбора директории установки указываем директорию без пробелов в имени (не C:\Program Files\PHP). Например C:\httpd\php. Выбирем пункт "Do not setup a web server". Делаем custom тип установки, включаем PEAR раздел.
По завершению, проверяем установку.
Пуск -> Выполнить или WIN+R.
cmd
{syntaxhighlighter brush: bash;fontsize: 100; first-line: 1; }php -v{/syntaxhighlighter}
Должны получить, что-то вроде этого
{syntaxhighlighter brush: bash;fontsize: 100; first-line: 1; }PHP 5.3.5 (cli) (built: Jan 5 2011 20:29:28)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies{/syntaxhighlighter}
Установка PEAR
Заходим в директорию где был установлен php и выполняем bat файл.
go-pear.bat
Устанавливаем, как system копию. Проверяем правильность всех 12-ти пунктов, путей к ресурсам.
После установки запускаем сгенерированый в директории php, PEAR_ENV.reg файл, для внесения изменений в реестр Windows.
Переоткрываем консоль еще раз.
cmd
Проверяем установлен ли PEAR
{syntaxhighlighter brush: bash;fontsize: 100; first-line: 1; }pear version{/syntaxhighlighter}
Должны получить что-то вроде
{syntaxhighlighter brush: bash;fontsize: 100; first-line: 1; }PEAR Version: 1.9.0
PHP Version: 5.3.5
Zend Engine Version: 2.3.0{/syntaxhighlighter}
Установка phpUnit
Перед установкой обновляем PEAR библиотеки
{syntaxhighlighter brush: bash;fontsize: 100; first-line: 1; }pear update-channels
pear upgrade-all{/syntaxhighlighter}
Устанавливаем phpunit. На даный момент стабильная версия 3.5
Добавляем новые каналы
{syntaxhighlighter brush: bash;fontsize: 100; first-line: 1; }pear channel-discover pear.phpunit.de
pear channel-discover components.ez.no
pear channel-discover pear.symfony-project.com{/syntaxhighlighter}
Устанавливаем
{syntaxhighlighter brush: bash;fontsize: 100; first-line: 1; }pear install phpunit/PHPUnit{/syntaxhighlighter}
Проверяем
Установка NetBeans
Скачиваем NetBeans для php проектов.
Устанавливаем.
После установки запускаем и заходим в Tools -> Plugins.
Устанавливаем плагин Selenium for PHP .
Запуск Selenium RC
После установки Selenium for PHP плагина, Selenium RC сервер будет встроен в NetBeans и автоматически будет запускаться при старте IDE.
Но лучше запускать вручную, послуднюю версию selenium сервере. Для этого нужно отключить сервер в средствах NetBeans.
Открыть вкладку Services -> Servers -> Selenium Server.
Останавливаем сервер и убираем его из автозапуска в окне Properties.
Скачиваем selenium-server и запускаем из cmd.
{syntaxhighlighter brush: bash;fontsize: 100; first-line: 1; }java -jar selenium-server-standalone-2.0b2.jar -interactive{/syntaxhighlighter}
Должны получить логи запуска selenium сервера, которые заканчиваются как
{syntaxhighlighter brush: bash;fontsize: 100; first-line: 1; }23:06:20.759 INFO - Started HttpContext[/wd,/wd]
23:06:20.766 INFO - Started SocketListener on 0.0.0.0:4444
23:06:20.767 INFO - Started org.openqa.jetty.jetty.Server@32fb4f{/syntaxhighlighter}
Проверка
Создаем новый PHP проект и первый пилотный Selenium Test.
{syntaxhighlighter brush: bash;fontsize: 100; first-line: 1; }<?php
require_once ‘PHPUnit/Extensions/SeleniumTestCase.php’;
/**
-
Sample of Selenium Google Test
-
@author Andrii Dzynia
*/
class SeleniumGoogleTest extends PHPUnit_Extensions_SeleniumTestCase {function setUp() {
$this->setBrowser(“*iexplore”);
$this->setBrowserUrl(“http://google.com/”);
}function testMyTestCase() {
$this->open(“/”);
$this->type(“q”, “selenium”);
$this->click(“btnG”);
sleep(“5”);
$this->assertTrue($this->isTextPresent(“Selenium”));
}
}{/syntaxhighlighter}Запускаем shift+F6.
В output видим консольный результат теста
{syntaxhighlighter brush: bash;fontsize: 100; first-line: 1; }PHPUnit 3.5.12 by Sebastian Bergmann.
.
Time: 15 seconds, Memory: 3.50Mb
OK (1 test, 1 assertion){/syntaxhighlighter}Среда разработки готова для дальнейшего построения тестового фреймворка и написания новых тестов.