SlideShare a Scribd company logo
Codeception + PHP for QA Automation
Евгений Борисик
ISSoft / Coherent Solutions
Что такое Codeception
1. Тестирование на 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. Преобладающее количество тестов – UI
2. Вы хотите получать Allure репорты 
3. Вы выбрали Codeception только из-за совместимости с Selenium
4. Вас интересует относительно невысокий уровень вхождения в
автоматизацию
Посредством чего запускаются тесты
• PhpBrowser – эмулятор браузера;
• Selenium WebDriver – настоящий браузер;
• Движок подключенного Вами модуля функционального фреймворка;
PhpBrowser
Плюсы:
1. Очень быстрый
2. Работает посредством curl-запросов
Минусы:
1. Не подходит для приложений, которые активно используют js
2. Сложно фиксить ошибки в тестах
Selenium WebDriver
Плюсы:
1. Отлично работает со всеми приложениями
2. Удобный при дебаге
Минусы:
1. Медленный
2. Требует запуска Selenium Server
Сравним скорость выполнения
PhpBrowser
Selenium WebDriver
Как настраивать запуск тестов
Как создавать тестовые классы
«Классическим» способом с помощью IDE
Как создавать тестовые классы
С помощью командной строки
generate:cept (Codeception scenario) – задаём желаемый вид
тестового класса;
acceptance – указываем, к какой группе тестов будет относится
новый класс;
LogoutTest – имя тестового класса, к названию автоматически
добавить приставка «Cept».
Тестовые классы вида Cept
Тестовые классы вида Cest
Тестирование веб-сервисов
• REST and SOAP
• Методы для аутентификации
• Методы для проверки статусов и хэдеров
• Методы для работы с результатами запросов
Пример теста
Тестирование баз данных
Делаем дамп базы и помещаем его в папку _data.
Тестирование баз данных
1. Запросы INSERT and SELECT
2. После прохождения тестов база данных полностью очищается и
заново заполняется с помощью скрипта
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 работает очень быстро через PhpBrowser
3. Codeception создан в первую очередь для функционального и
unit-тестирования, но это не значит, что с помощью его не
стоит тестировать UI
4. Codeception – хороший выбор для тестирования БД, если нет
необходимости делать UPDATE и DELETE запросы
5. Codeception – отличный выбор для тестирования REST и SOAP
сервисов
6. Codeception позволяет генерировать html репорт со своей
спецификой
7. Codeception не имеет интеграции со сторонними
фреймворками для репортинга
Спасибо за внимание
Евгений Борисик
ISSoft / Coherent Solutions
www.comaqa.by

More Related Content

PDF
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
PPTX
Jmeter
PPTX
системы сборок проектов
PDF
Автоматизация функционального тестирования REST API
PDF
Как Cluster Membership Software может помочь QA
PPTX
Автоматизация тестирования многопоточности
PPTX
Основы и нюансы параллельного тестрования
PPT
Решения для автоматизации тестирования Web-приложений на базе Selenium
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
Jmeter
системы сборок проектов
Автоматизация функционального тестирования REST API
Как Cluster Membership Software может помочь QA
Автоматизация тестирования многопоточности
Основы и нюансы параллельного тестрования
Решения для автоматизации тестирования Web-приложений на базе Selenium

What's hot (20)

PPTX
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
PPT
Инструментация среды исполнения в арсенале тестировщика
PDF
Микросервисы для автоматизации тестирования - опыт "Одноклассников"
PPT
Maven как средство сборки проекта
PPTX
Performance testing with apache JMeter
PPTX
Поиск багов в поиске
PPTX
(Seleniumcamp) Selenium RC for QA Engineer
PPTX
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
PPTX
JIRA. С добавками. Для тестировщиков
PPTX
CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функцион...
PDF
Полуавтоматизация third-party API
PPTX
автоматизация тестирования с помощью Selenium
PPTX
Speeding up UI tests, profiling of UI tests
PDF
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
PPTX
Threads & LinkedClone. Как сократить время на развертывание продукта и подгот...
PPTX
Внедрение автоматизации тестирования в highload проекте с непрерывной выкладкой
PPTX
Cистемы автоматической сборки проектов (Полина Фоминых)
PDF
Опыт разработки и тестирования RESTful JSON сервиса
PDF
«Тестируем веб приложения», Павел Сташевский
PPS
СКБ-Банк. Игорь Клопотов. "Apache ServiceMix: опыт внедрения и эксплуатации"
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Инструментация среды исполнения в арсенале тестировщика
Микросервисы для автоматизации тестирования - опыт "Одноклассников"
Maven как средство сборки проекта
Performance testing with apache JMeter
Поиск багов в поиске
(Seleniumcamp) Selenium RC for QA Engineer
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
JIRA. С добавками. Для тестировщиков
CodeFest 2011. Левин М. — Фреймворк для автоматизации тестирования и функцион...
Полуавтоматизация third-party API
автоматизация тестирования с помощью Selenium
Speeding up UI tests, profiling of UI tests
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Threads & LinkedClone. Как сократить время на развертывание продукта и подгот...
Внедрение автоматизации тестирования в highload проекте с непрерывной выкладкой
Cистемы автоматической сборки проектов (Полина Фоминых)
Опыт разработки и тестирования RESTful JSON сервиса
«Тестируем веб приложения», Павел Сташевский
СКБ-Банк. Игорь Клопотов. "Apache ServiceMix: опыт внедрения и эксплуатации"
Ad

Similar to COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, COMAQA.BY (20)

PDF
Как построить свой фреймворк для автотестов?
PDF
Как работать с legacy проектом, которому больше10 лет? |Денис Воскобойник
PDF
C# Web. Занятие 01.
PPT
Платформа для автоматического тестирования Erlang проектов на примере UserGat...
PDF
Павел Брылов, Skype
PPTX
Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей
PPTX
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
PDF
CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания
PDF
PDF
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
PPTX
Lesson1
PPTX
Эволюция автотестирования на Selenium
PPTX
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
PDF
JUnit, дай пять!
PPT
Сервлеты
PPT
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
PDF
Project under control
PDF
Web and mobile development for intersystems caché, Eduard Lebedyuk
PDF
Разработка мобильного и веб интерфейса для Caché
PPTX
Олександр Хотемський “Обзор архитектуры Selenium WebDriver”
Как построить свой фреймворк для автотестов?
Как работать с legacy проектом, которому больше10 лет? |Денис Воскобойник
C# Web. Занятие 01.
Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Павел Брылов, Skype
Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Lesson1
Эволюция автотестирования на Selenium
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
JUnit, дай пять!
Сервлеты
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
Project under control
Web and mobile development for intersystems caché, Eduard Lebedyuk
Разработка мобильного и веб интерфейса для Caché
Олександр Хотемський “Обзор архитектуры Selenium WebDriver”
Ad

More from COMAQA.BY (20)

PDF
Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...
PPTX
Anton semenchenko. Comaqa Spring 2018. Nine circles of hell. Antipatterns in ...
PPTX
Vivien Ibironke Ibiyemi. Comaqa Spring 2018. Enhance your Testing Skills With...
PPTX
Roman Soroka. Comaqa Spring 2018. Глобальный обзор процесса QA и его важность
PPTX
Roman Iovlev. Comaqa Spring 2018. Архитектура Open Source решений для автомат...
PPTX
Vladimir Polyakov. Comaqa Spring 2018. Особенности тестирования ПО в предметн...
PPTX
Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...
PPTX
Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...
PPTX
Ivan Katunov. Comaqa Spring 2018. Test Design and Automation for Rest API.
PPTX
Vadim Zubovich. Comaqa Spring 2018. Красивое тестирование производительности.
PPTX
Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...
PPTX
Моя роль в конфликте
PPTX
Организация приемочного тестирования силами матерых тестировщиков
PPTX
Развитие или смерть
PPTX
Системный взгляд на параллельный запуск Selenium тестов
PPTX
Эффективная работа с рутинными задачами
PPTX
Как стать синьором
PPTX
Open your mind for OpenSource
PPTX
JDI 2.0. Not only UI testing
PPTX
Out of box page object design pattern, java
Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...
Anton semenchenko. Comaqa Spring 2018. Nine circles of hell. Antipatterns in ...
Vivien Ibironke Ibiyemi. Comaqa Spring 2018. Enhance your Testing Skills With...
Roman Soroka. Comaqa Spring 2018. Глобальный обзор процесса QA и его важность
Roman Iovlev. Comaqa Spring 2018. Архитектура Open Source решений для автомат...
Vladimir Polyakov. Comaqa Spring 2018. Особенности тестирования ПО в предметн...
Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...
Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...
Ivan Katunov. Comaqa Spring 2018. Test Design and Automation for Rest API.
Vadim Zubovich. Comaqa Spring 2018. Красивое тестирование производительности.
Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...
Моя роль в конфликте
Организация приемочного тестирования силами матерых тестировщиков
Развитие или смерть
Системный взгляд на параллельный запуск Selenium тестов
Эффективная работа с рутинными задачами
Как стать синьором
Open your mind for OpenSource
JDI 2.0. Not only UI testing
Out of box page object design pattern, java

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
  • 10. Как создавать тестовые классы «Классическим» способом с помощью IDE
  • 11. Как создавать тестовые классы С помощью командной строки generate:cept (Codeception scenario) – задаём желаемый вид тестового класса; acceptance – указываем, к какой группе тестов будет относится новый класс; LogoutTest – имя тестового класса, к названию автоматически добавить приставка «Cept».
  • 14. Тестирование веб-сервисов • REST and SOAP • Методы для аутентификации • Методы для проверки статусов и хэдеров • Методы для работы с результатами запросов
  • 16. Тестирование баз данных Делаем дамп базы и помещаем его в папку _data.
  • 17. Тестирование баз данных 1. Запросы INSERT and SELECT 2. После прохождения тестов база данных полностью очищается и заново заполняется с помощью скрипта
  • 18. Codeception – «копаем» глубже Группировка тестов Запуск тестов: codecept run –g admin
  • 19. Codeception – «копаем» глубже Использование StepObjects pattern
  • 20. Codeception – «копаем» глубже Использование PageObjects pattern
  • 21. Codeception – «копаем» глубже Использование PageObjects pattern Cest: Cept:
  • 22. Codeception – «копаем» глубже Репортинг • Позволяет создавать отчёты в разном формате: html, xml, tap, json. • Тип отчёта задаётся во время запуска в качестве флага. • Нету интеграции со сторонними фреймворками репортинга.
  • 23. Codeception – «копаем» глубже Репортинг
  • 24. Подведём итоги 1. Codeception идеально подходит для php-приложений 2. Codeception работает очень быстро через PhpBrowser 3. Codeception создан в первую очередь для функционального и unit-тестирования, но это не значит, что с помощью его не стоит тестировать UI 4. Codeception – хороший выбор для тестирования БД, если нет необходимости делать UPDATE и DELETE запросы 5. Codeception – отличный выбор для тестирования REST и SOAP сервисов 6. Codeception позволяет генерировать html репорт со своей спецификой 7. Codeception не имеет интеграции со сторонними фреймворками для репортинга
  • 25. Спасибо за внимание Евгений Борисик ISSoft / Coherent Solutions www.comaqa.by