COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, COMAQA.BY
1. Codeception + PHP for QA Automation
Евгений Борисик
ISSoft / Coherent Solutions
2. Что такое Codeception
1. Тестирование на PHP в стиле BDD
2. 100% на базе PHPUnit
3. Тестирование баз данных
4. Тестирование веб-сервисов
5. Тестирование функциональных PHP фреймворков
6. Параллельный запуск тестов
3. Когда стоит начать
использовать Codeception
1. Тестируемое приложение написано на PHP и использует такие
фреймворки, как Lavarel, Symfony2, Phalcon, Zend, Yii и др.
2. Вы хотите максимально быстро и понятно для самого себя
начать тестировать REST, SOAP api
3. Есть необходимость тестирования баз данных
4. Вы заинтересованы в быстром прохождении тестов
5. Функциональное и Unit-тестирование у Вас в приоритете
6. Вы тестируете статическое приложение
7. Вас интересует относительно невысокий уровень вхождения в
автоматизацию
4. Когда стоит отказаться
от использования Codeception
1. Преобладающее количество тестов – UI
2. Вы хотите получать Allure репорты
3. Вы выбрали Codeception только из-за совместимости с Selenium
4. Вас интересует относительно невысокий уровень вхождения в
автоматизацию
5. Посредством чего запускаются тесты
• PhpBrowser – эмулятор браузера;
• Selenium WebDriver – настоящий браузер;
• Движок подключенного Вами модуля функционального фреймворка;
6. PhpBrowser
Плюсы:
1. Очень быстрый
2. Работает посредством curl-запросов
Минусы:
1. Не подходит для приложений, которые активно используют js
2. Сложно фиксить ошибки в тестах
7. Selenium WebDriver
Плюсы:
1. Отлично работает со всеми приложениями
2. Удобный при дебаге
Минусы:
1. Медленный
2. Требует запуска Selenium Server
11. Как создавать тестовые классы
С помощью командной строки
generate:cept (Codeception scenario) – задаём желаемый вид
тестового класса;
acceptance – указываем, к какой группе тестов будет относится
новый класс;
LogoutTest – имя тестового класса, к названию автоматически
добавить приставка «Cept».
14. Тестирование веб-сервисов
• REST and SOAP
• Методы для аутентификации
• Методы для проверки статусов и хэдеров
• Методы для работы с результатами запросов
17. Тестирование баз данных
1. Запросы INSERT and SELECT
2. После прохождения тестов база данных полностью очищается и
заново заполняется с помощью скрипта
22. Codeception – «копаем» глубже
Репортинг
• Позволяет создавать отчёты в разном формате: html, xml, tap,
json.
• Тип отчёта задаётся во время запуска в качестве флага.
• Нету интеграции со сторонними фреймворками репортинга.
24. Подведём итоги
1. Codeception идеально подходит для php-приложений
2. Codeception работает очень быстро через PhpBrowser
3. Codeception создан в первую очередь для функционального и
unit-тестирования, но это не значит, что с помощью его не
стоит тестировать UI
4. Codeception – хороший выбор для тестирования БД, если нет
необходимости делать UPDATE и DELETE запросы
5. Codeception – отличный выбор для тестирования REST и SOAP
сервисов
6. Codeception позволяет генерировать html репорт со своей
спецификой
7. Codeception не имеет интеграции со сторонними
фреймворками для репортинга