comaqa.by conf #2: "codeception + php for qa automation", Евгений Борисик,...
TRANSCRIPT
Codeception + PHP for QA Automation
Евгений БорисикISSoft / Coherent Solutions
Что такое Codeception1. Тестирование на PHP в стиле BDD
2. 100% на базе PHPUnit
3. Тестирование баз данных
4. Тестирование веб-сервисов
5. Тестирование функциональных PHP фреймворков
6. Параллельный запуск тестов
Когда стоит начать использовать Codeception
1. Тестируемое приложение написано на PHP и использует такие фреймворки, как Lavarel, Symfony2, Phalcon, Zend, Yii и др.
2. Вы хотите максимально быстро и понятно для самого себя начать тестировать REST, SOAP api
3. Есть необходимость тестирования баз данных4. Вы заинтересованы в быстром прохождении тестов5. Функциональное и Unit-тестирование у Вас в приоритете6. Вы тестируете статическое приложение7. Вас интересует относительно невысокий уровень вхождения в
автоматизацию
Когда стоит отказаться от использования Codeception
1. Преобладающее количество тестов – UI2. Вы хотите получать Allure репорты 3. Вы выбрали Codeception только из-за совместимости с Selenium4. Вас интересует относительно невысокий уровень вхождения в
автоматизацию
Посредством чего запускаются тесты
• PhpBrowser – эмулятор браузера;
• Selenium WebDriver – настоящий браузер;
• Движок подключенного Вами модуля функционального фреймворка;
PhpBrowser
Плюсы:1. Очень быстрый2. Работает посредством curl-запросовМинусы:3. Не подходит для приложений, которые активно используют js4. Сложно фиксить ошибки в тестах
Selenium WebDriver
Плюсы:1. Отлично работает со всеми приложениями2. Удобный при дебагеМинусы:3. Медленный4. Требует запуска Selenium Server
Сравним скорость выполненияPhpBrowser
Selenium WebDriver
Как настраивать запуск тестов
Как создавать тестовые классы
«Классическим» способом с помощью IDE
Как создавать тестовые классы
С помощью командной строки
generate:cept (Codeception scenario) – задаём желаемый вид тестового класса;acceptance – указываем, к какой группе тестов будет относится новый класс;LogoutTest – имя тестового класса, к названию автоматически добавить приставка «Cept».
Тестовые классы вида Cept
Тестовые классы вида Cest
Тестирование веб-сервисов
• REST and SOAP• Методы для аутентификации• Методы для проверки статусов и хэдеров• Методы для работы с результатами запросов
Пример теста
Тестирование баз данныхДелаем дамп базы и помещаем его в папку _data.
Тестирование баз данных1. Запросы INSERT and SELECT2. После прохождения тестов база данных полностью очищается и
заново заполняется с помощью скрипта
Codeception – «копаем» глубжеГруппировка тестов
Запуск тестов: codecept run –g admin
Codeception – «копаем» глубжеИспользование StepObjects pattern
Codeception – «копаем» глубжеИспользование PageObjects pattern
Codeception – «копаем» глубжеИспользование PageObjects pattern
Cest:
Cept:
Codeception – «копаем» глубже
Репортинг
• Позволяет создавать отчёты в разном формате: html, xml, tap, json.• Тип отчёта задаётся во время запуска в качестве флага.• Нету интеграции со сторонними фреймворками репортинга.
Codeception – «копаем» глубжеРепортинг
Подведём итоги1. Codeception идеально подходит для php-приложений2. Codeception работает очень быстро через PhpBrowser3. Codeception создан в первую очередь для функционального и unit-
тестирования, но это не значит, что с помощью его не стоит тестировать UI
4. Codeception – хороший выбор для тестирования БД, если нет необходимости делать UPDATE и DELETE запросы
5. Codeception – отличный выбор для тестирования REST и SOAP сервисов
6. Codeception позволяет генерировать html репорт со своей спецификой
7. Codeception не имеет интеграции со сторонними фреймворками для репортинга