Не так давно я стал заниматься автоматизированным функциональным тестированием. Тестируемый продукт написан на PHP (Yii). При выборе инструмента для тестирования я искал фреймворки, написанные на том же языке, чтобы в дальнейшем при создании тестов можно было использовать код самого проекта. Мой выбор пал на Codeception. Хочу поделиться некоторыми некоторыми "полезностями", которые могут значительно сэкономить время при изучении данного инструмента.
- Чтобы запустить тесты в chrome, недостаточно указать это при запуске тестов. Selenium сервер должен быть запущен с указанием пути к драйверу chrome:
java -Dwebdriver.chrome.driver='/path/to/chromedriver' -jar selenium-server-standalone-2.40.0.jar
Скачать chromedriver - Запуск отдельного теста из Cest файла:
codecept run tests/acceptance/UserCest:login
где UserCest - cest файл с набором тестов, а login - название теста - В Codeception есть модуль Db, который позволяет перед каждым прогоном набора тестов (или перед каждым тестом) восстанавливать базу из бэкапа, а также предоставляет удобные методы для обращения к БД тестируемого приложения. У модуля есть недостаток - он не работает с большими бэкапами (баг PHP reg exp). Если же вы хотите пользоваться методами модуля, а бэкап делать своими средствами, нужно указать это в конфиге codeception для модуля Db (acceptance.suite.yml):
populate: false
cleanup: false
Попробуйте Codeception. Тесты получаются достаточно стабильными (FF, Chrome), пишутся быстро, PageObject паттерн поддерживается.