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

Post on 13-Apr-2017

356 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

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 не имеет интеграции со сторонними фреймворками для репортинга

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

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

www.comaqa.by

top related