Вход Связаться

Персональная страничка-блог

Eclipse - Selenium - PHPUnit howto или как это заставить работать

Я не занимаюсь тестированием в профессиональном плане. Но мне как и любому другому менеджеру или программисту приходится много времени посвящать качеству. Если продукт или например сайт небольшой, то все вопросы связанные с качеством в принципе можно держать в голове. Если продукт сложнее то необходимо наладить процесс проверки качества (он же QA; он же Quality Assurance). Я никакой Америки не открываю, тут уже давно светлые головы потрудились и систематизировали. См например "ISO/IEC TR 24772:2013" - это перечень уязвимостей в ПО которые необходимо избегать. Вобщем литературы по этому поводу уже предостаточно. Но я практик, и прежде всего меня интересует прикладная часть этого вопроса.

В WEB программировании всё больше и больше места занимает пользовательский интерфейс, он становится больше, сложнее и разнообразнее. Протестировать все ньюансы "руками" практически невозможно приходится автоматизировать.

Мой товарищ Сергей Воронюк задавшись вопросом автоматизации обнаружил, что для одного из самых популярных средств для автоматизации UI тестирования, в связке с поддерживаемым PHP, катастрофически мало ресурсов где вся информация была бы собрана так сказать в одном месте. Информацию предоставил именно он поэтому повествование будет идти от имени Сергея. От меня ему огромное спасибо и надеюсь эта статья окажется кому-то полезной.

«-Ты же не можешь на вопрос: Почему?, – ответить: Потому что, гладиолус! © КВН»

Язык PHP официально не поддерживается разработчиками Selenium’a, поэтому нам придется использовать библиотеки от сторонних разработчиков, которые позволят писать код с использованием Selenium функционала. На момент написания статьи уже появилась 2 версия Selenium: Selenium Web Driver. Однако все библиотеки, написанные для работы с Selenium 2 на PHP, еще не прошли испытание временем. Отсюда встает вопрос – или использовать стабильные библиотеки для Selenium RC (насколько это вообще возможно) или использовать библиотеки для Selenium 2 вместе с прилагающимися дефектами и глюками. Я остановился на Selenium RC, поскольку навыков в Selenium у меня нет и разобраться где мои ошибки, а где ошибки библиотек, я не в силах. Позже, разобравшись, что к чему можно переходить на Web Driver, тем более, что переустановить придется только библиотеки Selenium, а все остальное уже и так будет настроено.

Как знакомились Eclipse+Selenium+PHPUnit и что из этого вышло…

Так уж получилось, что информации по настройке Eclipse+Selenium +Java в интернете умопомрачительно много, однако почти вся информация касается работы с языком java. Попытка использовать эту информацию и доустановить PHPUnit может привести к очень большим трудностям, нестыковкам, получению неверного результата или не получению его как такового. В этой статье будет максимально подробно описан процесс установки с 0, для людей которые имеют мало опыта в программировании. Сразу оговорюсь, авторских находок тут не много, это, скорее, результат переработки огромного количества информации из интернета и рассортировка по полочкам. В статье, по возможности, я буду давать ссылки на первоисточники, а так же на статьи, где даются решения потенциально возможных проблем при установке.

P.S. В статье предполагается, что у Вас уже установлен denwer, коим пользуюсь я, т.к. именно под него написано все нижеследующее. Писалось и тестировалось все на winXP.

Eclipse? А при чем здесь NASA?

Вы, конечно, можете скачать готовую сборку вот с этой странички: http://www.eclipse.org/pdt/downloads/, но я предпочитаю всегда иметь запасные варианты (последующая статья является легкой переработкой статьи: http://ivanchenko.by/sergeys-blog/varied/99-pdt-eclipse-indigo ):

  1. Сперва скачиваем оригинальную сборку (Eclipse Classic) отсюда http://www.eclipse.org/downloads/ (я скачаю последнюю девелоперскую сборку отсюда: http://www.eclipse.org/downloads/packages/eclipse-classic-43-m5a/keplerm5 )
  2. Распаковываем архив с Eclipse в любое удобное место. 
  3. Запускаем Eclipse и указываем путь для workspace (место, где будут храниться создаваемые eclipse’ом проекты). Eclipse запустился и мы закрываем welcome табу.
  4. Теперь займемся java. Скачиваем java отсюда: http://www.oracle.com/technetwork/java/javase/downloads/ . Я скачаю java SE run time: http://www.oracle.com/technetwork/java/javase/downloads/jre7-downloads-1880261.html (версию для х86 windows в формате .exe)
  5. Запускаем скачанный файл и устанавливаем в соответствии с инструкцией.
  6. Теперь перезапускаем Eclipse и идём "Help->Install new Software"
    Проверяем поле “Work with:” – в dropdown списке выбираем http://download.eclipse.org/releases/kepler (вместо kepler будет название Вашей версии Eclipse)
  7. Теперь добавим сайт апдейтов вручную, для чего жмем кнопку добавить и вводим в поле “Location” вот такой URL: http://download.eclipse.org/tools/pdt/updates/release (этот URL всегда можно проверить в разделе PDT Repository по ссылке: http://www.eclipse.org/pdt/downloads/ )
  8. Нажимаем Ok и в появившемся списке отмечаем “PHP Developmanet Tool (PDT)”. Дальше все время next и соглашаемся с лицензионным соглашением. Дальше релакс N-дцать минут и закрываем Eclipse.
  9. Переходим к устанвоке PHPUnit.

О! О! Инопланетяне полетели!

Так уж выходит, что самой проблемной частью всей работы по настройке рабочей среды является установка PHPUnit. Велика вероятность, что что-то пойдет не так как задумано и тогда нас спасет google. Итак приступим (последующий текст является переработкой статьи: http://webdevwood.blogspot.com/2011/07/phpunit-denwer.html ): 

  1. Перво-наперво установим PEAR, поскольку PHPUnit требует свежей версии. PEAR мы будем устанавливать сами, потому что дополнение на сайте Денвера устарело и PHPUnit будет требовать более новую версию PEAR (на сайте PEAR имеются ссылки на мануал по установке, вот одна из них: http://pear.php.net/manual/en/installation.php )
    1. Заходим на официальный сайт документации PEAR и качаем файл go-pear.phar. Вот прямая ссылка на скачивание: http://pear.php.net/go-pear.phar.
    2. Теперь копируем этот файла в папку Денвера по этому пути: Z:\usr\local\php5\PEAR (если папки не существует - создаем)
    3. В директории Z:\usr\local\php5\ создаем любой текстовый файл, а затем заменяем полностью его имя с расширением на go-pear.bat
    4. Внутрь файла прописываем:
      @ECHO OFF
      set PHP_BIN=php.exe
      %PHP_BIN% -d output_buffering=0 -d phar.require_hash=0 PEAR\go-pear.phar
      pause
      Если такой файл уже существует, то его содержимое надо заменить кодом выше, иначе у вас не сработает этот скрипт.
    5. Запускаем созданный файл двойным нажатием.
    6. Следуем инструкциям по установке. В середине установки вам будет предложено указать пути для PEAR, обязательно проверьте корректность каждого. Обычно нужно подкорректировать 11-ый и 12-ый (у меня в процессе установки ругалось, что не найдены различные extensions aka curl, я просто прожимал ОК).
    7. После установки PEAR необходимо прописать переменные окружение. Для этого нужно просто два раза кликнуть на файл z:\usr\local\php5\PEAR_ENV.reg и нажать ОК.
    8. Перезапускаем Denwer
    9. Набираем в консоли, из папки “z:\usr\local\php5”: pear.bat list. Должно появится что-то вроде:
    10. Что бы окончательно убедиться, что все встало отлично, пропишем в консоли:
      pear –V
      В результате получаем версию PHP и PEAR:
    11. Вот пару ссылок на решения возможных проблем при установке:
      http://liteproblog.ru/koding/installing-pear-for-php.html
      http://lifeexample.ru/razrabotka-i-optimizacia-saita/kak-ustanovit-pear.html
      http://easy4web.ru/?p=553
  2. Приступаем к установке непосредственно PHPUnit:
    1. Подключаем необходимые репозитории, для чего последовательно набираем команды в консоль, из папки “Z:\usr\local\php5”:
      pear channel-discover pear.phpunit.de
      pear channel-discover components.ez.no
      pear channel-discover pear.symfony-project.com

      Все необходимое подключено! 
    2. Посмотрим что нам доступно, набрав команду:
      pear remote-list -c phpunit
    3. Устанавливаем PHPUnit следующей командой:
      pear install -a phpunit/PHPUnit
    4. Набираем в командной строке:
      phpunit –version
      чтобы убедиться, что phpunit установлен
  3. Разбор ошибок (Некоторые из возникающих проблем можно решить так (источник: http://www.whyte624.ru/2012/03/21/phpunit-installation/ )):
    1. В результате может появится сообщение об ошибке, ключевым в котором является:
      requires PEAR Installer (version >= 1.9.4)
      . В этом случае нужно будет обновить PEAR командой:
      pear upgrade PEAR
    2. Если обновление не запускается, то возможно нужно очистить кэш. Очистка кэша также может пригодится после обновления PEAR.
      pear clear-cache
    3. Также после обновления PEAR или при появлении ошибки, что новая версия PHPUnit не найдена, то нужно обновить информацию о каналах следующей командой:
      pear update-channels
    4. Ну и если что-то пошло не так, то можно удалить PHPUnit:
      pear uninstall phpunit
    5. В моем случае PERL не мог скачать Yaml c канала «symfony-project.com»

      Решена была проблема вот такой последовательностью команд:
      pear uninstall phpunit (окончательно убедиться, что PHPUnit не установился)
      pear clear-cache (очищаем кэш)
      pear config-set auto_discover 1 (позволяем PERL добавлять каналы самостоятельно)
      pear install --alldeps pear.phpunit.de/PHPUnit (устанавливаем PHPUnit)
      phpunit –version (убеждаемся, что PHPUnit установился корректно)

"Ты все-таки прилетел!" © "Малыш и Карлсон"

Итак, наконец-то приступаем к установке Selenium и его запуску, для чего установим его через PEAR и запустим сам сервер:

  1. Устанавливаем Selenium через PEAR, для чего пишем в консоли:
    pear install phpunit/PHPUnit_Selenium
  2. Идем на сайт Selenium и качаем библиотеку сервера со страницы http://docs.seleniumhq.org/download/ (ищем ссылку в разделе Selenium Server (formerly the Selenium RC Server )
  3. Кладем скачанный .jar в удобное для место. Я создам отдельную папку для сервера и файла его запуска.
  4. Создаем .bat файл (как уже было описано выше) в той же папке с удобным названием для запуска, а-ля run_selenium.bat 
  5. Внутрь созданного файла пишем:
    java -jar selenium-server-standalone-2.31.0.jar –trustAllSSLcertificates
    (–trustAllSSLcertificates команду я в своем время прописал из-за проблем с соединением к сайтам по протоколу HTTPS)
  6. Теперь запускаем .bat файл и наслаждаемся рабочим Selenium.

Помощь по сайтам

Уважаемые посетители.

  • Если вы хотите создать WEB-сайт;
  • Если у вас есть сайт, и вы хотите его изменить/дополнить, но не знаете как;
  • Если у вас возникли какие-нибудь вопросы относительно настройки вашей CMS;

Вы можете абсолютно не стесняясь задавать мне вопросы я обязательно отвечу. Пишите ваши вопросы письмом по адресу Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. .