вторник, 1 апреля 2014 г.

Codeception tips

Не так давно я стал заниматься автоматизированным функциональным тестированием. Тестируемый продукт написан на PHP (Yii). При выборе инструмента для тестирования я искал фреймворки, написанные на том же языке, чтобы в дальнейшем при создании тестов можно было использовать код самого проекта. Мой выбор пал на Codeception. Хочу поделиться некоторыми некоторыми "полезностями", которые могут значительно сэкономить время при изучении данного инструмента.

  1. Чтобы запустить тесты в chrome, недостаточно указать это при запуске тестов. Selenium сервер должен быть запущен с указанием пути к драйверу chrome:
    java -Dwebdriver.chrome.driver='/path/to/chromedriver' -jar selenium-server-standalone-2.40.0.jar
    Скачать chromedriver
  2. Запуск отдельного теста из Cest файла:
    codecept run tests/acceptance/UserCest:login
    где UserCest - cest файл с набором тестов, а login - название теста
  3. В Codeception есть модуль Db, который позволяет перед каждым прогоном набора тестов (или перед каждым тестом) восстанавливать базу из бэкапа, а также предоставляет удобные методы для обращения к БД тестируемого приложения. У модуля есть недостаток - он не работает с большими бэкапами (баг PHP reg exp). Если же вы хотите пользоваться методами модуля, а бэкап делать своими средствами, нужно указать это в конфиге codeception для модуля Db (acceptance.suite.yml):
    populate: false
    cleanup: false
Попробуйте Codeception. Тесты получаются достаточно стабильными (FF, Chrome), пишутся быстро, PageObject паттерн поддерживается.

понедельник, 24 марта 2014 г.

Инструменты Google для тестирования

Недавно прочитал книгу "How Google Tests Software", которая не так давно вышла на русском языке.
Если все, что написано в книге, правда, то тестировании в "корпорации добра" находится на каком-то космическом уровне =). Меня очень заинтересовали их внутренние инструменты, которые они выложили в общий доступ. Итак, вот они:

  1. Google Tests Analytics - инструмент для быстрого создания тест-плана по ACC методологии. ACC мне понравилась, однако я так и не понял, как в GTA импортировать тест-кейсы, баги и чекины. Возможно, имеется ввиду интеграция c BITE.
  2. BITE (Browser Integrated Testing Environment) - расширение Chrome, которое позволяет записывать ручные кейсы в виде Javascript кода и отправлять готовые тикеты на сервер. Для генерации javascript кода используетcя RPF (Record Playback Framework)
    На главной странице проекта BITE мы видим следующее :
  3. I am OFFICIALLY DEPRECATING this code base due to lack up of support. I apologize but there is no one left to maintain this project. Hopefully some will be able to take advantage of the code and build something useful for themselves!
  4. Идея проекта отличная, но это расширение только для Chrome, остальные браузеры пролетают =(.
  5. QualityBots - мощный инструмент для попиксельного сравнения страниц в разных каналах версий Chrome. Опять же, работает только для Chrome, а еще у вас должен быть аккаунт в Amazon EC2. Кстати, у Яндекса есть своя технология, которая основана на попиксельном сравнении страницы с эталоном (который был заапрувлен вручную).

Я с надеждой жду открытого кода гугловского багтрекера Buganizer, т.к. существующие бесплатные решения довольно унылы. Тому же Redmine недостает гибкости (например, в нём до сих пор нельзя настроить workflow отдельно для каждого проекта). Подпишитесь на блог тестирования гугла, чтобы быть в курсе событий =).