В качестве примера будем использовать чистое приложение на базе шаблона Yii2 advanced. Подразумевается, что в приложении настроено подключение к БД и выполнены все миграции.
Подключаем конфигурацию для приёмочных тестов, для этого переименовываем файл frontend/tests/acceptance.suite.yml.example
в frontend/tests/acceptance.suite.yml
.
В этой конфигурации указываем URL сайта, в моём случае это https://yii2.ll
.
Устанавливаем модуль WebDriver для Codeception:
composer require codeception/module-webdriver --dev
Для генерации необходимых классов для тестов Codeception выполняем команду:
vendor\bin\codecept build
Для работы сервера Selenium требуется Java. Если у вас её ещё нет, то качаем и устанавливаем.
Скачиваем последнюю стабильную версию сервера Selenium для Windows.
Скачиваем последнюю стабильную версию WebDriver для Firefox (geckodriver) для Windows.
Перемещаем jar-файл Selenium и распакованное приложение geckodriver в одну папку:
В этой же папке создаём файл selenium.bat
для запуска сервера c содержимым:
java -jar selenium-server-standalone-3.141.59.jar
Вместо selenium-server-standalone-3.141.59.jar
подставьте название jar-файла сервера Selenium.
Запускаем сервер Selenium с помощью selenium.bat
:
Запускаем приёмочные тесты:
vendor\bin\codecept run acceptance -c frontend
Если всё прошло успешно, то вы увидите похожий вывод:
Когда используется небезопасный SSL-сертификат (на локальном сервере встречается очень часто), возникает ошибка [Facebook\WebDriver\Exception\InsecureCertificateException]
.
Решение простое, в конфигурации приёмочных тестов acceptance.suite.yml
разрешаем принимать небезопасные сертификаты с помощью параметра acceptInsecureCerts
, задаваемого в опции capabilities
модуля WebDriver:
Если вы используете OpenServer, то можете для удобства добавить ссылку на selenium.bat
в закладки:
При написании статьи использовалось следующее ПО: