Selenium.
План работы • • • Введение Selenium Core Selenium IDE Selenium Remote Control Selenium Grid Другие проекты Selenium
Что делать когда: • Достался хард-кодный проект непокрытый тестами; • код желает лучшего, а времени на рефакторинг нет; • внесение правок в одном месте нарушает работу логики в другом; • для покрытия *Unit тестами, проще переписать проект; • бизнес логика размыта по коду и даже по шаблонам.
Преимущества Selenium IDE: • Интуитивно понятный интерфейс; • возможность записи действия пользователя; • с написанием тестов справится любой человек понимающий как должен работать проект; • автоматическое генерирование *Unit кода для различных языков программирования. Ложка дёгтя: • Только для Fire. Fox; • после записи действия все равно нужно “допиливать ручками”; • нет встроенного инструмента для получения XPath элементов.
• • • Рекомендации для тех, кто начинает использовать Selenium: Не забывать команду wait. For. Page. To. Load; применять максимально чаще команды assert* и verify*; после wait. For. Pop. Up не забывайте команду select. Pop. Up; после закрытия pop. Up – select. Window; четко понимайте разницу между click и click. And. Wait; при тестирование ajax частей применяйте команды wait. For*.
Преимущества тестирования в IDE: • Последовательное выполнения тестов в suite; • удобное внесение изменений в тесты. Минусы: • Только для Fire. Fox; • инициализацию данных приходится делать вручную; • невозможность протестировать cron скрипты.
Selenium Remote Controls
• Преимущества Selenium RC 1. Поддержка высокоуровневых языков программирования (Java, C#, Perl, Ruby и др. ) 2. Гибкость тестов • Недостатки Selenium RC 1. Нужны квалифицированные программисты для написания тестов 2. Усложнение инфраструктуры и увеличение объемов кода
Чаще всего целесообразно применять комбинацию Selenium IDE и Selenium RC Возможно также совместное использование с Php. Unit, Junit и др.
• PHPUnit_Extensions_Selenium. Test. Case не умеет интерпретировать suite файлы с Selenium IDE; • для выполнения теста PHPUnit запускает всегда новый браузер; • PHPUnit 3. 4. x неправильно отрабатывает логику команд wait.
По заявлениям разработчиков Selenium RC поддерживает следующие браузеры: • chrome • iexplore • firefox 3 • googlechrome • konqueror • firefox 2 • safari • opera
C чем Selenium Вам не поможет? • Тестирование загрузки файлов; • тестирование cron скриптов; • нет нормального решения для Flash части (http: //code. google. com/p/flash-selenium).
Спасибо за внимание!