Параллелизация тестов, а именно: лучший пхп тулл для автоматизации (Codeception); основы Docker контейнирезации; robo - что это и зачем он нам нужен; profit
2. О себе
QA Lead in Lovata LLC
QA automation in LLSOFT LLC
QA trainer in Belhard
and just a cool guy
3. Agenda
1. Выбираем php инструмент для автоматизации
∙ Codeception, что ты такое?
∙ Когда он может быть полезен?
∙ Что в нём такого класного?
2. Параллелизация (Docker)
∙ Основы docker контейнирезации
∙ Использование Docker’a для масштабирования
3. Robo
∙ Финальные штрихи для запуска
++ +
6. Когда он полезен?
∙ Основной язык проекта - PHP
∙ Multi-Framework and Multi-Backend
∙ Нужны приёмочные тесты и не только
∙ Нужен простой инструмент (BDD)
7. Подробнее о модульности
∙ Удобная среда тестирования для каждого набора
тестов.
∙ Позволяет нам выбирать действия и проверки,
которые могут быть выполнены в тестах.
∙ Все действия и проверки, которые могут быть
выполнены в тесте, определены в модулях.
8. Примеры модулей
WebDriver – для запуска тестов в браузере
REST – для тестирования REST Api
DB, Dbh – для коннекта к базе данных
Yi, Laravel5, Zend – для запуска интегрированных
в фреймворк тестов
В сумме 30+ модулей!
17. Какие он решает проблемы?
1. Перевозить разных (несовместимые) друг с другом типов
грузов, например, еду и химикаты или стекло и кирпичи
2. Работать с упаковками различных размеров, используя
один и тот же транспорт
18. Зачем нужен Docker?
∙ Быстрый процесс разворачивания приложения.
∙ Удобная инкапсуляция приложений.
∙ Одинаковое поведение на локальном компьютере и
тестовом/производственном сервере.
∙ Простой и понятный мониторинг.
∙ Масштабируемость.
19. Docker-compose
Инструмент для простого определения и запуска
многоконтейнерных Докер-приложений. В нем есть
файл docker-compose.yml, и с его помощью можно одной
командой поднять приложение с набором сервисов.
21. Как с ним работать?
1. Запускаем докер контейнер
$ docker-compose up -d
2. Запускаем тесты
$ docker-compose run --rm codecept run
3. Всё автоматизировано, включаем Quake. Получаем
profit
23. Шаги к параллелизации
1. Разбивка всех тестов на группы
2. Паралелльный запуск каждой из групп тестов
3. Слияние отчётов
Для реализации нам понадобятся:
- Robo;
- robo-paracept
29. Итого
Если мы хотим внедрить автотесты на PHP проекте:
1) Выбираем Codeception, как инструмент автоматизации
2) Пишем тесты (с использованием нужных модулей)
3) Запускаем тесты параллельно с помощью докера и Robo
PS. Если очень хочется - подключаем CI, добавляем триггеры
для запуска, одеваем гавайские шорты и спокойно
отправляемся путешествовать пока все наши тесты
зелёные.