comaqa.by conf #2: "codeception + php for qa automation", Евгений Борисик,...

25
Codeception + PHP for QA Automation Евгений Борисик ISSoft / Coherent Solutions

Upload: comaqaby

Post on 13-Apr-2017

356 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, COMAQA.BY

Codeception + PHP for QA Automation

Евгений БорисикISSoft / Coherent Solutions

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

Что такое Codeception1. Тестирование на PHP в стиле BDD

2. 100% на базе PHPUnit

3. Тестирование баз данных

4. Тестирование веб-сервисов

5. Тестирование функциональных PHP фреймворков

6. Параллельный запуск тестов

Page 3: COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, COMAQA.BY

Когда стоит начать использовать Codeception

1. Тестируемое приложение написано на PHP и использует такие фреймворки, как Lavarel, Symfony2, Phalcon, Zend, Yii и др.

2. Вы хотите максимально быстро и понятно для самого себя начать тестировать REST, SOAP api

3. Есть необходимость тестирования баз данных4. Вы заинтересованы в быстром прохождении тестов5. Функциональное и Unit-тестирование у Вас в приоритете6. Вы тестируете статическое приложение7. Вас интересует относительно невысокий уровень вхождения в

автоматизацию

Page 4: COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, COMAQA.BY

Когда стоит отказаться от использования Codeception

1. Преобладающее количество тестов – UI2. Вы хотите получать Allure репорты 3. Вы выбрали Codeception только из-за совместимости с Selenium4. Вас интересует относительно невысокий уровень вхождения в

автоматизацию

Page 5: COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, COMAQA.BY

Посредством чего запускаются тесты

• PhpBrowser – эмулятор браузера;

• Selenium WebDriver – настоящий браузер;

• Движок подключенного Вами модуля функционального фреймворка;

Page 6: COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, COMAQA.BY

PhpBrowser

Плюсы:1. Очень быстрый2. Работает посредством curl-запросовМинусы:3. Не подходит для приложений, которые активно используют js4. Сложно фиксить ошибки в тестах

Page 7: COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, COMAQA.BY

Selenium WebDriver

Плюсы:1. Отлично работает со всеми приложениями2. Удобный при дебагеМинусы:3. Медленный4. Требует запуска Selenium Server

Page 8: COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, COMAQA.BY

Сравним скорость выполненияPhpBrowser

Selenium WebDriver

Page 9: COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, COMAQA.BY

Как настраивать запуск тестов

Page 10: COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, COMAQA.BY

Как создавать тестовые классы

«Классическим» способом с помощью IDE

Page 11: COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, COMAQA.BY

Как создавать тестовые классы

С помощью командной строки

generate:cept (Codeception scenario) – задаём желаемый вид тестового класса;acceptance – указываем, к какой группе тестов будет относится новый класс;LogoutTest – имя тестового класса, к названию автоматически добавить приставка «Cept».

Page 12: COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, COMAQA.BY

Тестовые классы вида Cept

Page 13: COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, COMAQA.BY

Тестовые классы вида Cest

Page 14: COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, COMAQA.BY

Тестирование веб-сервисов

• REST and SOAP• Методы для аутентификации• Методы для проверки статусов и хэдеров• Методы для работы с результатами запросов

Page 15: COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, COMAQA.BY

Пример теста

Page 16: COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, COMAQA.BY

Тестирование баз данныхДелаем дамп базы и помещаем его в папку _data.

Page 17: COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, COMAQA.BY

Тестирование баз данных1. Запросы INSERT and SELECT2. После прохождения тестов база данных полностью очищается и

заново заполняется с помощью скрипта

Page 18: COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, COMAQA.BY

Codeception – «копаем» глубжеГруппировка тестов

Запуск тестов: codecept run –g admin

Page 19: COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, COMAQA.BY

Codeception – «копаем» глубжеИспользование StepObjects pattern

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

Codeception – «копаем» глубжеИспользование PageObjects pattern

Page 21: COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, COMAQA.BY

Codeception – «копаем» глубжеИспользование PageObjects pattern

Cest:

Cept:

Page 22: COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, COMAQA.BY

Codeception – «копаем» глубже

Репортинг

• Позволяет создавать отчёты в разном формате: html, xml, tap, json.• Тип отчёта задаётся во время запуска в качестве флага.• Нету интеграции со сторонними фреймворками репортинга.

Page 23: COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, COMAQA.BY

Codeception – «копаем» глубжеРепортинг

Page 24: COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, COMAQA.BY

Подведём итоги1. Codeception идеально подходит для php-приложений2. Codeception работает очень быстро через PhpBrowser3. Codeception создан в первую очередь для функционального и unit-

тестирования, но это не значит, что с помощью его не стоит тестировать UI

4. Codeception – хороший выбор для тестирования БД, если нет необходимости делать UPDATE и DELETE запросы

5. Codeception – отличный выбор для тестирования REST и SOAP сервисов

6. Codeception позволяет генерировать html репорт со своей спецификой

7. Codeception не имеет интеграции со сторонними фреймворками для репортинга

Page 25: COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, COMAQA.BY

Спасибо за внимание

Евгений БорисикISSoft / Coherent Solutions

www.comaqa.by