Your SlideShare is downloading. ×
0
Codeception Introduction
Codeception Introduction
Codeception Introduction
Codeception Introduction
Codeception Introduction
Codeception Introduction
Codeception Introduction
Codeception Introduction
Codeception Introduction
Codeception Introduction
Codeception Introduction
Codeception Introduction
Codeception Introduction
Codeception Introduction
Codeception Introduction
Codeception Introduction
Codeception Introduction
Codeception Introduction
Codeception Introduction
Codeception Introduction
Codeception Introduction
Codeception Introduction
Codeception Introduction
Codeception Introduction
Codeception Introduction
Codeception Introduction
Codeception Introduction
Codeception Introduction
Codeception Introduction
Codeception Introduction
Codeception Introduction
Codeception Introduction
Codeception Introduction
Codeception Introduction
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Codeception Introduction

1,138

Published on

presentation on test automation tool for php. http://automated-testing.info

presentation on test automation tool for php. http://automated-testing.info

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,138
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  1. CodeceptionТестирование в PHP
  2. Я• Боднарчук Михаил• Веб разработчик (PHP, Ruby)• Автор Codeception• @davert
  3. Существующие решения• PHPUnit• ?• ?• ?• ?• ?• Selenium
  4. Результат• PHP программисты – гавнокодеры• Никто не тестирует код*• И я в том числе.• * за редким исключением. Скорее ради забавы, или, например, когда это огромный проект ентерпрайз уровня.
  5. Чего не хватает?• Простоты написания тестов• Простоты чтения тестов• Простоты отладки тестов
  6. Codeception• Простой но мощный фреймворк• Основан на PHPUnit• Open Source• Хорошо документирован• Версия 1.0.14• PHP >= 5.3
  7. Установка• демо
  8. Чуваки• Тестирование с «человеческим лицом»• Действия от лица людей.• Минимум технических терминов.
  9. Чуваки• WebGuy – тестирует работу сайта вцелом• Приемочное тестирование.• Олицетворяет менеджера
  10. Чуваки• TestGuy - проверяет работу зная внутренности системы.• Обеспечивает функциональное тестирование.• Проф. тестировщик.
  11. Чуваки• CodeGuy – тестирует код.• Юнит-тестирование.• Разработчик.
  12. WebGuy• Selenium RC• WebDriver• ZombieJS• PhpBrowser
  13. Типичный тест• $I = new WebGuy($scenario);• $I->click(Login);• $I->fillField(username,davert);• $I->fillField(password,gfhjkm);• $I->click(Submit);• $I->see(Hello, Davert!);
  14. Написание теста
  15. Как находятся элементы?• $I->click(Login); - ?• $I->fillField(username,davert); - ?
  16. Я же умный, красивый, в меруупитанный фреймворк ну в полном расцвете сил!
  17. Поиск элемента на странице• По имени (name, value, alt, …)• По лейблу• По CSS селектору• По Xpath (но вскоре будет!)
  18. Результаты теста
  19. Команды: see..• $I->see (‘text on a page’)• $I->see(‘heading on page’,’h1’);• $I->dontSee(‘Error’);• $I->seeInCurrentUrl(‘/user/davert’);• $I->seeCheckboxIsChecked(‘#terms’);
  20. Это очевидно, Ватсон!
  21. TestGuy• Symfony2• Zend Framework• Kohana• Social Engine• MySQL, PostgreSQL• ORM
  22. Интеграция с фреймворками• Не обращаемся к веб-серверу.• Работает гораздо быстрее.• Stack trace и отладочная информация.
  23. Гибкость• демо
  24. Отладка• Все промежуточные данные выводятся на экран• При сбое делается скриншот последней страницы• Модуль WebDebug
  25. Очистка БД• перезаливать sql-дамп БД.• использовать SQLite.• через rollback в транзакции.
  26. Модули• Веб (Selenium, ZombieJS, PhpBrowser)• API (REST, SOAP)• MVC Frameworks (Symfony, Zend, …)• Database (MySQL, PostgreSQL, …)• …. всего 19
  27. Когда модулей мало• Пишем свои!• Helper-код• public function seeReceivedSms() {• $messages = $this->_getOutgoingMessages();• $this->assertGreaterThen(0, $messages->count());• }• Тест• $I->click("Confirm by Sms");• $I->seeReceivedSms();
  28. Интеграция с CI• Экспорт HTML, XML, JSON, TAP• Jenkins, Bamboo, etc…• Красивые HTML репорты
  29. Репорт
  30. Подходит для 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’);
  31. Hardcore BDD
  32. Документация• http://codeception.com• Guides – всё о фреймворке (8 глав)• Модули – все функции• Reference –команды, опции.
  33. Вопросы?• http://Codeception.com• https://github.com/codeception/codeception• Skype: Davert.ua• davert@ukr.net• Twitter: @davert

×