Не важно на каком языке программирования написан сайт или при помощи какого фреймвока он сделан, мы можем написать тесты на php используя PHPUnit + Selenium.
Для этого нам нужно:
- Установить библиотеки PHPUnit и Selenium (https://packagist.org/packages/phpunit/phpunit-selenium)
- Установить веб-драйверы chrome (https://sites.google.com/a/chromium.org/chromedriver/downloads) и firefox ( https://github.com/mozilla/geckodriver/releases).
- Сервер selenium (http://www.seleniumhq.org/download/. Находим блок "Selenium Standalone Server", строку Download version и скачиваем по ней jar файл).
- Нам нужен composer. Если нет, устанавливаем (https://getcomposer.org/download/)
- Написать простой тест, который открывают браузер и кликает там по каким-то элементам.
- Аккаунт на mail.ru (на нем и будем тестировать)
Делаем все это на Ubuntu
Устанавливаем библиотеки PHPUnit и Selenium
Для установки библиотеки PHPUnit и Selenium переходим в папку проекта. Выполняем в консоли команду:
composer require phpunit/phpunit-selenium
Устанавливаем webdriver-а для chrome и firefox
Для этого, скаченные файлы (см. п. 2) нужно поместить в каталог /usr/bin
Запускаем selenuim server
Выполняем в консоли команду:
java -jar имя скаченного файла.jar (например: java -jar selenium-server-standalone-3.0.1.jar)
Пишем код
Задача:
- авторизироваться на сайте mail.ru
- из списка доменов выбрать inbox.ru, если у вас домен не mail.ru, а inbox.ru
В папке проекта (в той, в которую мы загрузили библиотеки PHPUnit и Selenium) создаем класс MailRuTest c именем файла MailRuTest.php
<?php
class MailRuTest extends PHPUnit_Extensions_Selenium2TestCase
{
private $login = 'ваш логин' // указываем без @mail.ru (например: my-login);
private $password = 'ваш пароль';
protected function setUp()
{
/**
Выбираем браузер
*/
$this->setBrowser('firefox');
//$this->setBrowser('chrome');
$this->setBrowserUrl('https://mail.ru');
}
public function testAuth()
{
/**
Переходим на страницу авторизации
*/
$this->url('https://account.mail.ru/login');
/**
Указываем логин и пароль в поля авторизации
*/
$this->byName('Username')->value($this->login);
$this->byName('Password')->value($this->password);
/**
* Если у вашего почтового ящика домен не mail.ru, а, скажем inbox.ru
* Выбираем домен из выпадающего списка.
* Для этого раскомментируйте код ниже
*/
/**
$this->byClassName("b-dropdown__ctrl")->click();
$this->byCssSelector("a[data-value=\"inbox.ru\"]")->click();
*/
/**
Кликаем по кнопке
*/
$this->byClassName('b-login__submit-btn')->submit();
/**
Поспим 5 секунд
*/
sleep(5);
}
}
Проверяем
Запускаем в консоли:
php vendor/phpunit/phpunit/phpunit MailRuTest.php
Ниже, прикреплен архив с веб-драйверами chrome и firefox + selenuim server, которые стоят у меня. Я использую Ubuntu 15.10 / 64 Скачать
Продолжение следует...
devreadwrite.com



Подборка адаптивных шаблонов для вашей CMS
Статьи по
Как получить и установить HTTPS сертификат на сайта

Комментарии
Жду продолжения...
ОтветитьPHPUnit + Selenium2. Часть 2. Авторизация + валидация на mail.ru
ОтветитьУже попробовал. А как выполнить все тесты по очереди, например тест валидации, тест авторизации, тест добавления коммента, ...
ОтветитьЖду 3,4,5,6,7,... n части, будет отличный туториал.
Было бы супер получить что то вроде тестов на реально примере разработки, например пишем блог, делаем тесты под него и весь этот процесс описать от начала до конца.
Это будет отличный пример разработки проекта с юнит тестированием. А то информации делаем тест, пишем функционал полно. А описания и примера как это работает на реальных проектах нет, соответственно понимания тоже нет.
А в целом получил новые зания и опыт, спасибо Константин
Ну это так, просто пожелания
Ответить