SlideShare a Scribd company logo
Codeception

Тестирование в PHP
Я
•   Боднарчук Михаил
•   Веб разработчик (PHP, Ruby)
•   Автор Codeception
•   @davert
Существующие решения
•   PHPUnit
•   ?
•   ?
•   ?
•   ?
•   ?
•   Selenium
Результат
• PHP программисты – гавнокодеры
• Никто не тестирует код*
• И я в том числе.



•   * за редким исключением. Скорее ради забавы, или, например, когда это огромный проект ентерпрайз уровня.
Чего не хватает?
• Простоты написания тестов
• Простоты чтения тестов
• Простоты отладки тестов
Codeception
•   Простой но мощный фреймворк
•   Основан на PHPUnit
•   Open Source
•   Хорошо документирован
•   Версия 1.0.14
•   PHP >= 5.3
Codeception Introduction
Установка
• демо
Чуваки
• Тестирование с «человеческим лицом»
• Действия от лица людей.
• Минимум технических терминов.
Чуваки
• WebGuy – тестирует работу сайта вцелом
• Приемочное тестирование.
• Олицетворяет менеджера
Чуваки
• TestGuy - проверяет работу зная
  внутренности системы.
• Обеспечивает функциональное
  тестирование.
• Проф. тестировщик.
Чуваки
• CodeGuy – тестирует код.
• Юнит-тестирование.
• Разработчик.
WebGuy
•   Selenium RC
•   WebDriver
•   ZombieJS
•   PhpBrowser
Типичный тест
•   $I = new WebGuy($scenario);
•   $I->click('Login');
•   $I->fillField('username','davert');
•   $I->fillField('password','gfhjkm');
•   $I->click('Submit');
•   $I->see('Hello, Davert!');
Написание теста
Как находятся элементы?
• $I->click('Login'); - ?
• $I->fillField('username','davert'); - ?
Я же умный, красивый, в меру
упитанный фреймворк ну в полном
         расцвете сил!
Поиск элемента на странице
•   По имени (name, value, alt, …)
•   По лейблу
•   По CSS селектору
•   По Xpath (но вскоре будет!)
Результаты теста
Команды: see..
•   $I->see (‘text on a page’)
•   $I->see(‘heading on page’,’h1’);
•   $I->dontSee(‘Error’);
•   $I->seeInCurrentUrl(‘/user/davert’);
•   $I->seeCheckboxIsChecked(‘#terms’);
Это очевидно, Ватсон!
TestGuy
•   Symfony2
•   Zend Framework
•   Kohana
•   Social Engine
•   MySQL, PostgreSQL
•   ORM
Интеграция с фреймворками
• Не обращаемся к веб-серверу.
• Работает гораздо быстрее.
• Stack trace и отладочная информация.
Гибкость
• демо
Отладка
• Все промежуточные данные выводятся на
  экран
• При сбое делается скриншот последней
  страницы
• Модуль WebDebug
Очистка БД
• перезаливать sql-дамп БД.
• использовать SQLite.
• через rollback в транзакции.
Модули
•   Веб (Selenium, ZombieJS, PhpBrowser)
•   API (REST, SOAP)
•   MVC Frameworks (Symfony, Zend, …)
•   Database (MySQL, PostgreSQL, …)
•   …. всего 19
Когда модулей мало
• Пишем свои!
• Helper-код
•   public function seeReceivedSms() {
•         $messages = $this->_getOutgoingMessages();
•         $this->assertGreaterThen(0, $messages->count());
•   }



• Тест
•   $I->click("Confirm by Sms");
•   $I->seeReceivedSms();
Интеграция с CI
• Экспорт HTML, XML, JSON, TAP
• Jenkins, Bamboo, etc…
• Красивые HTML репорты
Репорт
Подходит для BDD

•   As a new customer
•   $I->am(‘new customer’);
•   I want to buy a notebook
•   $I->wantTo(‘buy a notebook’);
•   In order to spend money faster
•   $I->lookForwardTo(‘spend money faster’);
Hardcore BDD
Документация
• http://codeception.com

• Guides – всё о фреймворке (8 глав)
• Модули – все функции
• Reference –команды, опции.
Вопросы?
•   http://Codeception.com
•   https://github.com/codeception/codeception
•   Skype: Davert.ua
•   davert@ukr.net
•   Twitter: @davert

More Related Content

PDF
М. Боднарчук Современное функциональное тестирование с Codeception
PPTX
Михаил Боднарчук Современное функциональное тестирование с Codeception
PDF
Behat в PHP с использованием Behat и Mink
PPT
Easy authcache 2 кеширование для pro родионов игорь
PPT
Руководство по приготовлению бутербродов из Selenium
PPTX
Behat-trick: как мы внедряли BDD на наших проектах
PPT
TestGuy - эмулируем вашего тестировщика
PDF
Анджей Гужовский "Riot.JS, или как приготовить современные Web Components"
М. Боднарчук Современное функциональное тестирование с Codeception
Михаил Боднарчук Современное функциональное тестирование с Codeception
Behat в PHP с использованием Behat и Mink
Easy authcache 2 кеширование для pro родионов игорь
Руководство по приготовлению бутербродов из Selenium
Behat-trick: как мы внедряли BDD на наших проектах
TestGuy - эмулируем вашего тестировщика
Анджей Гужовский "Riot.JS, или как приготовить современные Web Components"

What's hot (20)

PPTX
CodeFest 2012. Родионов А. — Тестирование Ruby (on Rails) приложений: стек, п...
PDF
BDD для PHP проектов
PPTX
Автоматизируем тестирование UI с Ruby, Cucumber и Selenium
PDF
"VUE.JS как реакт с человеческим лицом" Дулецкий Вольдэмар, Evrone
ODP
Системное тестирование приложений на Ruby on Rails с применением Rspec и Cap...
PDF
Изоморфный JavaScript — будущее уже здесь
PDF
Everything You Need to Know About WP_Query, WordCamp Russia 2014
PDF
Автоматизация UI тестирования под Windows и Windows Phone
PPT
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
PDF
Суперсилы Chrome developer tools
PPT
Solit 2012, Enterprise разработка PHP приложений, Иван Захарченко
PPTX
Как мы ускоряли WebGL / Мстислав Живодков (2GIS)
PDF
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
PDF
Архитектура кода нового 2ГИС Web API или куда мы дели MVC
PDF
Николай Сиварев "Приручая сайты"
PDF
Emmet - инструмент для веб-разработчика
PDF
Превышаем скоростные лимиты с Angular 2
PDF
По-настоящему ВИЗУАЛЬНОЕ построение лендинг-страниц на WP Gutenberg!
PDF
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
PPTX
Самодельная параметризация и параллелизация тестов на Webdriver (JS)
CodeFest 2012. Родионов А. — Тестирование Ruby (on Rails) приложений: стек, п...
BDD для PHP проектов
Автоматизируем тестирование UI с Ruby, Cucumber и Selenium
"VUE.JS как реакт с человеческим лицом" Дулецкий Вольдэмар, Evrone
Системное тестирование приложений на Ruby on Rails с применением Rspec и Cap...
Изоморфный JavaScript — будущее уже здесь
Everything You Need to Know About WP_Query, WordCamp Russia 2014
Автоматизация UI тестирования под Windows и Windows Phone
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
Суперсилы Chrome developer tools
Solit 2012, Enterprise разработка PHP приложений, Иван Захарченко
Как мы ускоряли WebGL / Мстислав Живодков (2GIS)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Архитектура кода нового 2ГИС Web API или куда мы дели MVC
Николай Сиварев "Приручая сайты"
Emmet - инструмент для веб-разработчика
Превышаем скоростные лимиты с Angular 2
По-настоящему ВИЗУАЛЬНОЕ построение лендинг-страниц на WP Gutenberg!
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
Самодельная параметризация и параллелизация тестов на Webdriver (JS)
Ad

Similar to Codeception Introduction (20)

PPTX
Codeception UATestingDays
PDF
TК°Conf. Организация разработки Frontend. Виталий Слободин.
PPTX
Безопасность Node.js / Илья Вербицкий (Независимый консультант)
PPT
Easy authcache 2 кэширование для pro. Родионов Игорь
PDF
Баба-Яга против! — Роман Дворнов, Ostrovok.ru
PDF
Баба Яга против!
PPTX
современная практика статического анализа безопасности кода веб приложений
PPTX
PowerShell
PDF
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
PDF
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
PDF
So Your WAF Needs a Parser
PDF
Unit-тестирование скриншотами: преодолеваем звуковой барьер
PPTX
Little Service in 2h
PDF
D2D Pizza JS Илья Беда "Куда мы все катимся?"
PPTX
Система обработки бизнес-логики server-side приложения на Groovy
PPTX
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
PDF
Регрессионное тестирование верстки
PPT
непрерывная интеграция шаг к непрерывному деплою родионов игорь
PPTX
Node.js введение в технологию, КПИ #ITmeetingKPI
PDF
Непрерывная интеграция - шаг к непрерывному деплойменту
Codeception UATestingDays
TК°Conf. Организация разработки Frontend. Виталий Слободин.
Безопасность Node.js / Илья Вербицкий (Независимый консультант)
Easy authcache 2 кэширование для pro. Родионов Игорь
Баба-Яга против! — Роман Дворнов, Ostrovok.ru
Баба Яга против!
современная практика статического анализа безопасности кода веб приложений
PowerShell
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
So Your WAF Needs a Parser
Unit-тестирование скриншотами: преодолеваем звуковой барьер
Little Service in 2h
D2D Pizza JS Илья Беда "Куда мы все катимся?"
Система обработки бизнес-логики server-side приложения на Groovy
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Регрессионное тестирование верстки
непрерывная интеграция шаг к непрерывному деплою родионов игорь
Node.js введение в технологию, КПИ #ITmeetingKPI
Непрерывная интеграция - шаг к непрерывному деплойменту
Ad

More from automated-testing.info (20)

PDF
Александр Кабалюк – SilkTest
PDF
За пределами PageObject
PDF
Философия и построение тестового фреймворка на основе BDD в PHP проектах
PDF
Швейцарский нож для Android
PDF
Автоматизация тестирования как сервис
PDF
Курс молодого бойца-автоматизатора – как стать ветераном и остаться в живых
PDF
Тестирование производительности Ajax приложений с помощью JMeter
PDF
Быстрое расширение Robot Framework под свои нужды с использованием Python
PDF
“Обезьянье тестирование” в мобильных проектах
PDF
Проблемы автоматизации крупных проектов: TestComplete
PDF
Совершенный тестовый фреймворк
PDF
В поисках магической кнопки или как приручить SOAP UI
PDF
Фреймворк для регрессионного тестирования на основе WebDriver
PDF
Codeception - WTF?
PDF
Keyword driven testing
PDF
Why it is not working
PPTX
Andrey Azimov - Как найти работу тестировщику?
PPT
Jenkins auto configureforbranch-php
PPTX
Иван Бордюг - Инструмент автоматизации регрессионного тестирования на основе ...
PPT
Alexei Zozulenko - Test automation failure
Александр Кабалюк – SilkTest
За пределами PageObject
Философия и построение тестового фреймворка на основе BDD в PHP проектах
Швейцарский нож для Android
Автоматизация тестирования как сервис
Курс молодого бойца-автоматизатора – как стать ветераном и остаться в живых
Тестирование производительности Ajax приложений с помощью JMeter
Быстрое расширение Robot Framework под свои нужды с использованием Python
“Обезьянье тестирование” в мобильных проектах
Проблемы автоматизации крупных проектов: TestComplete
Совершенный тестовый фреймворк
В поисках магической кнопки или как приручить SOAP UI
Фреймворк для регрессионного тестирования на основе WebDriver
Codeception - WTF?
Keyword driven testing
Why it is not working
Andrey Azimov - Как найти работу тестировщику?
Jenkins auto configureforbranch-php
Иван Бордюг - Инструмент автоматизации регрессионного тестирования на основе ...
Alexei Zozulenko - Test automation failure

Codeception Introduction