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

What's hot (20)

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

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

PDF
Как построить свой фреймворк для автотестов?
Dmitry Buzdin
 
PDF
Как работать с legacy проектом, которому больше10 лет? |Денис Воскобойник
Образовательные мероприятия "Netpeak Talks"
 
PDF
C# Web. Занятие 01.
Igor Shkulipa
 
PPT
Платформа для автоматического тестирования Erlang проектов на примере UserGat...
DevDay
 
PDF
Павел Брылов, Skype
Ontico
 
PPTX
Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей
solit
 
PPTX
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
DataArt
 
PDF
CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания
CodeFest
 
PDF
Sivko
kuchinskaya
 
PDF
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Mail.ru Group
 
PPTX
Lesson1
jinol
 
PPTX
Эволюция автотестирования на Selenium
SQALab
 
PPTX
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
JSC “Arcadia Inc”
 
PDF
JUnit, дай пять!
Dmitrii Tuchs
 
PPT
Сервлеты
Unguryan Vitaliy
 
PPT
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
Pavel Tsukanov
 
PDF
Project under control
Alex Simanovich
 
PDF
Web and mobile development for intersystems caché, Eduard Lebedyuk
InterSystems
 
PDF
Разработка мобильного и веб интерфейса для Caché
InterSystems CEE
 
PPTX
Олександр Хотемський “Обзор архитектуры Selenium WebDriver”
Dakiry
 
Как построить свой фреймворк для автотестов?
Dmitry Buzdin
 
Как работать с legacy проектом, которому больше10 лет? |Денис Воскобойник
Образовательные мероприятия "Netpeak Talks"
 
C# Web. Занятие 01.
Igor Shkulipa
 
Платформа для автоматического тестирования Erlang проектов на примере UserGat...
DevDay
 
Павел Брылов, Skype
Ontico
 
Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей
solit
 
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
DataArt
 
CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания
CodeFest
 
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Mail.ru Group
 
Lesson1
jinol
 
Эволюция автотестирования на Selenium
SQALab
 
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
JSC “Arcadia Inc”
 
JUnit, дай пять!
Dmitrii Tuchs
 
Сервлеты
Unguryan Vitaliy
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
Pavel Tsukanov
 
Project under control
Alex Simanovich
 
Web and mobile development for intersystems caché, Eduard Lebedyuk
InterSystems
 
Разработка мобильного и веб интерфейса для Caché
InterSystems CEE
 
Олександр Хотемський “Обзор архитектуры Selenium WebDriver”
Dakiry
 
Ad

More from COMAQA.BY (20)

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

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